觉得这个方法GetA()到时候有没有问题
那你应当先告诉我们什么算是有问题。你贴的程序有如下几个问题,不过可能都不是你关心的:
编译问题:1. GetA最后return obj; 可是obj是什么之前也没定义。
2. 我猜MethodA应该是个方法,但是你却声明成了class,是无返回值的方法还是什么?
运行期:th.Abort() 会抛出异常,不过你在你的主线程里捕捉不到(我猜你只是单纯想终止线程而已,不关心其他),因此你可以认为运行期没有异常抛出。
管他返回什么,th.Abort(); 会报错?
@[秦时明月]: Thread.Abort方法总是会抛出异常,无论你写什么代码。但是它抛出的异常是在thread所在的线程栈上的,你在主线程无法获取到。你就是想结束这个线程是吗?你让他把代码执行完毕就可以了,不需要你手动去结束的。
GetA除了参数传进来没用之外,Thread所代理的MethodA怎么定义返回class,打错了吧?
不要把新建的th传进去,如果要操作,可以直接在MethodA中,调用Thread.CurrentThread.Abort,就可以了,因为这里执行MethodA要终止的线程就是执行它代码的线程,就是当前的线程。
明白了吗?
搞什么啊.我现在要终止的就是新开启的线程
因为执行完毕了
@[秦时明月]: MethodA里面获取的Thread.CurrentThread就是你新建的线程。注意态度啊
@Ethan轻叹: 确实.我一样的终止他啊
@[秦时明月]: 就像楼上说的,你的终止恐怕是异常情况下终止线程的吧。try/catch加上去试试,有错不。