【发布时间】:2013-09-21 04:46:39
【问题描述】:
以下代码:
[RequiresSTA]
[Test]
public async Task TestSta()
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId+" - "+Thread.CurrentThread.GetApartmentState());
// *** await something here ***
Console.WriteLine(Thread.CurrentThread.ManagedThreadId+" - "+Thread.CurrentThread.GetApartmentState());
new FrameworkElement();
}
产生以下输出:
9 - STA
12 - MTA
然后,在 new FrameworkElement() 上引发 InvalidOperationException。
NUnit 支持 STA 线程创建,现在支持异步测试,但它似乎并没有通过创建 MTA SynchronizationContext 来混合两种模式。
我如何让它工作?任何解决方法?
【问题讨论】:
-
当您回答自己的问题时,应将问题写成实际问题。
-
写出问题和答案感觉很奇怪,但你是对的。完成:)
标签: c# wpf nunit async-await sta