Gibt es eine Möglichkeit zum Komponententest WaitHandle.WaitAll()
, wenn die in Visual Studio integrierte Komponententestlösung verwendet wird. Wenn ich versuche, und einen Test durchführen, die diese Funktion in Visual Studio verwendet der Test fehlschlägt und wenn die Testergebnisse der folgende Fehler angezeigt wird, untersucht:Wie verwende ich WaitHandler.WaitAll in MSTest ohne STA-Warnungen?
WaitAll for multiple handles on a STA thread is not supported
würde Ich mag die Verwendung von WaitAll()
zu Unit-Test in der Lage sein da ein zunehmender Teil der Codebasis meiner API sich nun auf ein IAsyncResult
Muster verschiebt, im Gegensatz zu anderen Mitteln zur Durchführung von Multithread-Operationen.
bearbeiten
auf Anthony Vorschlag Basierend hier ist eine einfache Hilfsmethode, die verwendet werden können, einen solchen Code in einer Einheit Testumgebung aufzurufen:
public static void TestInMTAThread(ThreadStart info)
{
Thread t = new Thread(info);
t.SetApartmentState(ApartmentState.MTA);
t.Start();
t.Join();
}
Welche Version von Visual Studio? –
Visual Studio 2008 mit der Möglichkeit, bei Bedarf auf 2010 umzusteigen – RobV