我正在使用thread.Abort杀死线程的方法,但是它不起作用。还有其他终止线程的方法吗?
thread.Abort
private void button1_Click(object sender, EventArgs e) { if (Receiver.IsAlive == true) { MessageBox.Show("Alive"); Receiver.Abort(); } else { MessageBox.Show("Dead"); Receiver.Start(); } }
我正在使用它,但是每次获得Alive状态时,它Receiver都是我的全局线程。
Alive
Receiver
很难杀死一个线程的原因是因为语言设计者希望避免以下问题:您的线程需要一个锁,然后在释放它之前先杀死它。现在,任何需要该锁的人都会被卡住。
您要做的是使用一些全局变量告诉线程停止。您必须手动在线程代码中检查该全局变量,如果看到它表明您应该停止,则返回该变量。