C#异步启动后如何取消

2025-05-17 18:55:16
推荐回答(1个)
回答1:

问题描述不是很详细,如果出现问题是出程序关闭,发现代码没停,因为子线程还在无限循环,可以将子线程设置为后台线程,这样在主线程结算后子线程完成最后一次运行也跟着释放

thread = new Thread(new ThreadStart(DoWork));
thread.IsBackground = true;

如果不是在主线程结束的时候停止子线程,也有几种情况,一个是子线程挂起,暂时不执行,等待被唤醒,另一种情况是关闭子线程,之后不再运行,需要再运行的时候重新new一个新的线程

//挂起(暂停)
thread.Suspend();
//可恢复执行挂起的线程
thread.Resume();
//释放子线程
thread.Abort();