【发布时间】:2010-07-14 12:46:39
【问题描述】:
在使用 Visual Studio 的内置单元测试解决方案时,有没有办法对 WaitHandle.WaitAll() 进行单元测试。当我尝试在 Visual Studio 中运行使用此函数的测试时,测试失败,并且在检查测试结果时显示以下错误:
WaitAll for multiple handles on a STA thread is not supported
我希望能够对WaitAll() 的使用进行单元测试,因为越来越多的 API 代码库现在正在转向IAsyncResult 模式,而不是其他执行多线程操作的方式。
编辑
根据 Anthony 的建议,这里有一个简单的辅助方法,可用于在单元测试环境中调用此类代码:
public static void TestInMTAThread(ThreadStart info)
{
Thread t = new Thread(info);
t.SetApartmentState(ApartmentState.MTA);
t.Start();
t.Join();
}
【问题讨论】:
-
Visual Studio 的哪个版本?
-
Visual Studio 2008,必要时可以选择迁移到 2010
标签: c# unit-testing mstest waithandle