次のコードは、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 か所だけ設定します。したがって、スレッド作業中に変更されることはありません。残念ながら、これを再現することはできません (クライアントのシステムでのみ再現)。理由はわかりません。そしてそれが私が尋ねている理由です。