¿Existe alguna manera de probar la unidad WaitHandle.WaitAll()
al usar la solución de prueba integrada de Visual Studio? Cuando intento y ejecutar una prueba que utiliza esta función dentro de Visual Studio no pasa la prueba y al examinar los resultados de la prueba se muestra el siguiente error:¿Cómo uso WaitHandler.WaitAll en MSTest sin advertencias de STA?
WaitAll for multiple handles on a STA thread is not supported
Me gustaría ser capaz de unidad de prueba el uso de WaitAll()
ya que una cantidad creciente de la base de código de mi API ahora se está moviendo a un patrón IAsyncResult
en comparación con otros medios de hacer operaciones de subprocesos múltiples.
Editar
Sobre la base de la sugerencia de Anthony aquí es un método de ayuda sencilla que se puede utilizar para invocar dicho código en un entorno de prueba de unidad:
public static void TestInMTAThread(ThreadStart info)
{
Thread t = new Thread(info);
t.SetApartmentState(ApartmentState.MTA);
t.Start();
t.Join();
}
¿Qué versión de Visual studio? –
Visual Studio 2008 con la opción de pasar a 2010 si es necesario – RobV