下一段代码抛出 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(Boolean value)
在 MyNamespace.MyClass.StartListening()
...
IsBackground 属性只设置在一个地方,这里。因此,它在线程工作期间永远不会改变。不幸的是我无法重现这个(仅在客户的系统上重现),所以我不知道原因。这就是我要问的原因。