回 帖 发 新 帖 刷新版面

主题:如何去除这个抛出异常?

因为程序使用了线程用来做while(true)循环,我在程序中也使用了thread1.Abort();但是每次关闭程序总会抛出一个异常:The thread was being abort(具体记不清了,大致意思是这样的),每次都出来挺烦躁的,有没有办法出来这个异常?

回复列表 (共8个回复)

沙发

当然可以,你把这个异常捕获了,然后不给它显示不就得了吗!!具体看下面写法:
try

              thread1.Abort();

catch()


这样就没有报错提示了~~!

板凳

还是有的,不信你试试

3 楼

你可以在程序退出的时候加一个错误捕捉。

4 楼

异常的捕获地点不对,或者不是逻辑错误。

5 楼

在线程对象代表的方法中捕获异常

6 楼

首先,向楼主说声不好意思,我之前说错了,捕获异常不应该是捕获about().
应该捕获进程调用的函数,如:
up=new Thread(new ThreadStart(this.myMethod));
up.Start();

那么应该:
public void myMethod()
{
    try{}
    catch(System.Exception){}
}

7 楼

你的异常在那里出现的就在那个线程里捕获他,而不是在Abort之后捕获,Abort捕获的异常是Abort本身执行不正确的异常。
比如说,你在线程thrd1中调用了Abort,而线程thrd2中却调用了thrd1中的数据,那么在thrd2中将报异常,你需要在thrd2中捕获,而不是在thrd2的Abort后面捕获。
不知道我是的是否明白了。。

8 楼

Thread th = new Thread();
.................
................
if (th.IsAlive)
{
 th.Abort();
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册