2 qq812858143 qq812858143 于 2016.03.25 10:17 提问

winform子窗体中的多线程怎么完全释放

我在主窗体中打开一个子窗口,然后这个子窗口中有三个多线程,当窗口关闭的时候,如何完全释放掉这三个多线程.要不然每次打开就会多三个线程,系统会越来越卡.
补充:我的三个线程里都是while(true){}无限循环

4个回答

songhtao
songhtao   Rxr 2016.03.25 10:29
已采纳

可以在窗口退出事件如OnFormClosing释放线程

bdmh
bdmh   Ds   Rxr 2016.03.25 10:26

线程执行完毕就会自行释放,你一定要让线程有退出的条件,比如置一个变量,在内部循环中判断,从而退出while等循环操作

bdmh
bdmh   Ds   Rxr 2016.03.25 10:27

当然,有强制杀死进程的api方法,但是不提倡使用

qq812858143
qq812858143 我担心的是,每次打开窗口都开启新的三个线程,而每次关闭只能Abort停止线程,会造成开启很多个线程
一年多之前 回复
qq978450288
qq978450288   2016.03.25 10:38

利用线程池 ThreadPool 系统会自动帮你优化。 何时释放交给 ThreadPool就行

qq978450288
qq978450288 就像bdmh 所说 线程工作结束 就会自动释放。 问题是 频繁的创建与释放线程 也是消耗资源的。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!