ich einen eingeschränkten Ausführungsbereich (CER) unter Verwendung den Codeabschnitt innerhalb einer while-Schleife eines Fadens zu schützen:Wie auszubrechen eine Schleife enthält nur einen eingeschränkten Ausführungsbereich (CER)
private static void MyThreadFunc()
{
try {
...
while (true)
{
RuntimeHelpers.PrepareConstrainedRegions();
try { }
finally
{
// do something not to be aborted
}
Thread.Sleep(1); // allow while loop to be broken out
}
}
catch (ThreadAbortException e)
{
// handle the exception
}
}
Das Problem ist, wenn ich die Thread.Sleep(1)
-Anweisung am Ende der While-Schleife nicht einführen, jeder Versuch, Thread.Abort() auf den Thread aufzurufen, hängt. Gibt es eine bessere Methode zum Abbrechen des Threads ohne die Thread.Sleep()
Funktion zu verwenden?