主题:如何去除这个抛出异常?
luochen601
[专家分:0] 发布于 2006-11-12 15:17:00
因为程序使用了线程用来做while(true)循环,我在程序中也使用了thread1.Abort();但是每次关闭程序总会抛出一个异常:The thread was being abort(具体记不清了,大致意思是这样的),每次都出来挺烦躁的,有没有办法出来这个异常?
回复列表 (共8个回复)
沙发
zhxatx [专家分:500] 发布于 2006-11-12 15:35:00
当然可以,你把这个异常捕获了,然后不给它显示不就得了吗!!具体看下面写法:
try
{
thread1.Abort();
}
catch()
{
}
这样就没有报错提示了~~!
板凳
luochen601 [专家分:0] 发布于 2006-11-12 18:53:00
还是有的,不信你试试
3 楼
ganpeng8251 [专家分:0] 发布于 2006-11-12 22:23:00
你可以在程序退出的时候加一个错误捕捉。
4 楼
linxuanxu [专家分:9360] 发布于 2006-11-13 10:21:00
异常的捕获地点不对,或者不是逻辑错误。
5 楼
tujun [专家分:1190] 发布于 2006-11-13 16:12:00
在线程对象代表的方法中捕获异常
6 楼
zhxatx [专家分:500] 发布于 2006-11-16 16:39:00
首先,向楼主说声不好意思,我之前说错了,捕获异常不应该是捕获about().
应该捕获进程调用的函数,如:
up=new Thread(new ThreadStart(this.myMethod));
up.Start();
那么应该:
public void myMethod()
{
try{}
catch(System.Exception){}
}
7 楼
nils1982 [专家分:30] 发布于 2006-11-17 16:23:00
你的异常在那里出现的就在那个线程里捕获他,而不是在Abort之后捕获,Abort捕获的异常是Abort本身执行不正确的异常。
比如说,你在线程thrd1中调用了Abort,而线程thrd2中却调用了thrd1中的数据,那么在thrd2中将报异常,你需要在thrd2中捕获,而不是在thrd2的Abort后面捕获。
不知道我是的是否明白了。。
8 楼
lory419 [专家分:370] 发布于 2006-11-28 09:01:00
Thread th = new Thread();
.................
................
if (th.IsAlive)
{
th.Abort();
}
我来回复