C# winform中关闭子窗体同时关闭该子窗体中的线程

子窗体的构造函数中开启线程(start),CPU立马标到50%,子窗体是用非模态方式打开(ShowDialog)。现在的问题是,我在关闭了子窗体后CPU仍旧是50%(只是... 子窗体的构造函数中开启线程(start),CPU立马标到50%,子窗体是用非模态方式打开(ShowDialog)。现在的问题是,我在关闭了子窗体后CPU仍旧是50%(只是关闭了子窗体,不是关闭了整个应用程序),即在子窗体中运行的线程还没有关闭。

thread.isbackgroud是说整个应用程序结束时才释放,应该是行不通的。
我想应该是在formclosing事件中执行相关操作,请大侠们教教我,该怎么做才能使子窗体关闭时线程自动关闭,同时子窗体打开线程又可以正常启动。
请各位大侠耐心些帮帮我,回答得尽量详细些,二楼那些很明显就是夸夸而谈,未经过实践。你以为这些简单的start和abort我不会用吗,我就是试过不可以才来这请教的嘛。
展开
 我来答
明桖瑶gr
推荐于2018-04-10 · TA获得超过1205个赞
知道小有建树答主
回答量:397
采纳率:100%
帮助的人:616万
展开全部
如果只存在一个线程,那么可以在子窗体类中申明一个 Thread 类成员变量保存你所创建的线程对象,在 FormClosed 事件中调用 Thread.Abort() 方法终止该线程。

若存在多个线程,使用 ArrayList 或 List<Thread> 集合保存所有创建的线程对象,在 FormClosed 事件中(或 FormClosing 事件):
// 终止所有线程
foreac(Thread thread in 集合对象)
thread.Abort();
heisetoufa
2009-05-27 · TA获得超过522个赞
知道小有建树答主
回答量:700
采纳率:0%
帮助的人:423万
展开全部
子窗体关闭调用关闭的方法
.Abort();

打开的时候调用打开的方法,然后.Start()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
feiyangqingyun
2009-05-27 · TA获得超过393个赞
知道小有建树答主
回答量:350
采纳率:0%
帮助的人:283万
展开全部
Application.ExitThread();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jlingang
2009-05-27 · 贡献了超过112个回答
知道答主
回答量:112
采纳率:0%
帮助的人:40.9万
展开全部
让线程睡眠就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式