首页 新闻 会员 周边 捐助

C# 子线程抛出异常,如何只结束当前子线程而主线程不退出?

0
悬赏园豆:20 [已解决问题] 解决于 2016-04-22 09:55

最近在用C# winform多线程处理一些任务,我开四个thread,每个thread启动一个start函数,start函数里又有很多函数,很多业务逻辑处理,我本来想在这些复杂的业务逻辑处理过程中,如果遇到非理想的情况,就throw new exception,在start函数的try catch中倒是可以接受到这些异常,但是走完catch和finally之后,整个winform application就退出了,不见了。

有没有办法子线程抛出异常之后,只停止当前线程,而不终止整个application,因为还要反映到界面提示,还有其他线程在处理任务。

mrhyher的主页 mrhyher | 初学一级 | 园豆:5
提问于:2016-04-21 19:45
< >
分享
最佳答案
0

代码问题,你没有消化异常?

收获园豆:20
上帝之城 | 老鸟四级 |园豆:2549 | 2016-04-21 19:58

z在子线程的start函数里,我有try catch处理的。

mrhyher | 园豆:5 (初学一级) | 2016-04-21 20:00

@mrhyher: 设置线程为后台线程

上帝之城 | 园豆:2549 (老鸟四级) | 2016-04-21 20:03

@上帝之城: thread.IsBackground = true;不行,走完catch和fianlly application还是自动退出。

mrhyher | 园豆:5 (初学一级) | 2016-04-21 20:11

@mrhyher: 你finally报错了

上帝之城 | 园豆:2549 (老鸟四级) | 2016-04-21 23:02

@上帝之城: finally里面啥也没有,不可能报错

mrhyher | 园豆:5 (初学一级) | 2016-04-22 09:22

@上帝之城: 找到了问题了,在catch里面调用了有throw new exception的函数,throw出来的异常没有被处理,导致application退出,谢谢啦!

mrhyher | 园豆:5 (初学一级) | 2016-04-22 09:55
其他回答(1)
0

你的 catch 试试为空

Yu | 园豆:12990 (专家六级) | 2016-04-22 09:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册