C# 子线程快速终止的几个办法
发布网友
发布时间:2024-10-18 02:25
我来回答
共1个回答
热心网友
时间:2024-12-12 22:53
由于项目需求,我选择了多线程方案,其中主线程负责界面处理(如显示数据、与用户交互等),子线程负责读写串口(发送命令、读取数据)。但在处理关闭子线程的问题上,我遇到了一些困难,以下是我的一些经验总结,希望对有同样问题的人有所帮助。
版本1:
在客户关闭程序时,主线程直接关闭,没有考虑子线程。
问题:任务管理器中,主程序进程还在运行(在等待子线程结束,而子线程做成了while(1)。)
版本2:
在主线程关闭处理时,首先关闭子线程。代码如下:
问题:主程序关不掉,类似于死机状。
版本3:改进一下,在程序启动时强制停止同名进程。在Program.cs的main方法中实现,代码如下:
版本4:(终结版本)
C#多线程编程时,Thread对象有个IsBackground属性,设置为true即可,在主线程关闭时,子线程随之关闭,速度很快。