我们可以放弃这样的Thread
:
Thread thread = new Thread(SomeMethod);
.
.
.
thread.Abort();
但是我可以用同样的方式而不是通过取消机制中止Task
(在.Net 4.0中)吗.I want to kill the Task immediately.
我们可以放弃这样的Thread
:
Thread thread = new Thread(SomeMethod);
.
.
.
thread.Abort();
但是我可以用同样的方式而不是通过取消机制中止Task
(在.Net 4.0中)吗.I want to kill the Task immediately.
Thread.Abort()方法(严重)被弃用.
线程和任务在被停止时都应该相互配合,否则系统可能会处于不稳定/未定义的状态.
如果您确实需要运行进程并从外部终止它,唯一安全的 Select 是在单独的AppDomain中运行它.
这个答案是关于.NET3.5和更早版本的.
从那以后,线程中止处理得到了改进,a.o.通过改变最终阻塞工作的方式.
但是线.中止仍然是一个值得怀疑的解决方案,您应该始终避免.
而在.Net Core(.NET5+)中,Thread.Abort()现在将抛出PlatformNotSupportedException
.
在某种程度上强调了"不受欢迎"这一点.