0

次のコードは、ThreadStateException をスローします。

public void StartListening()
{
     this.isListening = true;
     if (!this.listeningThread.IsAlive)
         this.listeningThread = new Thread(ListenForClients);
     this.listeningThread.Start();
     this.listeningThread.IsBackground = true;
}

IsBackground プロパティの設定中

this.listeningThread.IsBackground = true;

例外がスローされます。

どうしたの?IsBackground=true を間違った場所で使用していませんか?

例外テキスト:

スレッドは死んでいます。状態にアクセスできません。
System.Threading.Thread.SetBackgroundNative(Boolean isBackground)
で System.Threading.Thread.set_IsBackgrounf(ブール値)
で MyNamespace.MyClass.StartListening()
...

ここでは、IsBackground プロパティを 1 か所だけ設定します。したがって、スレッド作業中に変更されることはありません。残念ながら、これを再現することはできません (クライアントのシステムでのみ再現)。理由はわかりません。そしてそれが私が尋ねている理由です。

4

1 に答える 1