我在很多地方读过,我应该远离Thread.Abort。并且学到了很难的方法(它似乎在Mono上具有相当平台依赖的行为):))
那么从外部终止线程的好/优雅方式是什么?
我知道我可以添加这样的代码:
if (terminateRequested) return;
或更好
if (terminateRequested) throw new MyTerminateThreadException();
但是在现实世界的情况下,线程代码分布在多个C#文件中,很快就会变成烦人且重复的模式。
线程处于休眠状态,等待服务器连接,互斥锁或执行不是我的代码的情况如何?你是如何处理这些的?
答案 0 :(得分:1)
我认为Mono有Task
class available。我建议使用CancellationToken
查看。查看此Task Cancellation页面,以便更好地了解执行线程并取消它。