Von Zeit zu Zeit erhalte ich eine System.Threading.ThreadStateException, wenn ich versuche, einen Thread neu zu starten. Der betreffende Code lautet wie folgt:
// Make sure the thread is done stopping
while (this.mThread.ThreadState == ThreadState.Running)
{
Thread.Sleep(0);
}
// Respawn a thread if the current one is stopped or doesn't exist
if (this.mThread == null || this.mThread.ThreadState == ThreadState.Stopped)
{
this.mThread = new Thread(new ParameterizedThreadStart(Monitor)); }
// Start the thread
if (check)
{
this.mThread.Start(60000);
}
else
{
this.mThread.Start(0);
}
Daher zwei Fragen: Ist dies die richtige Vorgehensweise, und wenn ja, gibt es eine Möglichkeit, diesen Fehler zu verhindern?