C# 如何检查线程上是否调用了Thread.Interrupt()?

C# 如何检查线程上是否调用了Thread.Interrupt()?,c#,.net,multithreading,C#,.net,Multithreading,是否有任何方法可以检查中断()是否在我的线程上被调用,类似于Java的thread.isInterrupted?我认为没有类似的方法。如果有人打断你,而你被阻止(或随后被阻止),你会在线程中得到一个异常,但这与判断中断是否已经为你准备好并不是一回事 这提供了一个线索,您可以简单地阻塞一段时间,看看是否出现异常 也许值得退一步来看看为什么你认为你需要这个。很可能有更好的方法来实现您的目标。请具体说明。在什么情况下,您试图确定中断状态?到目前为止你试过什么?那是做什么的,那和你想要的有什么不同?请包

是否有任何方法可以检查中断()是否在我的线程上被调用,类似于Java的thread.isInterrupted?

我认为没有类似的方法。如果有人打断你,而你被阻止(或随后被阻止),你会在线程中得到一个异常,但这与判断中断是否已经为你准备好并不是一回事

这提供了一个线索,您可以简单地阻塞一段时间,看看是否出现异常


也许值得退一步来看看为什么你认为你需要这个。很可能有更好的方法来实现您的目标。

请具体说明。在什么情况下,您试图确定中断状态?到目前为止你试过什么?那是做什么的,那和你想要的有什么不同?请包括清楚显示您试图解决的场景和您希望发生的事情的内容。@Peter Duniho,这些要求是由于一些新的“规则”造成的吗?没有“要求”。你可以发布任何你想要的问题。但其他人可以选择忽略它,投票否决它,不管怎样。当有人要求你改进你的问题时,是为了让你受益。“规则”(正如你所描述的)并不新鲜。在我已经提供的链接中,以及在上的链接中,都清楚地列出了它们,以及该站点上的各种其他帮助中心主题。它们是长期存在的。只有当线程进入睡眠状态时才会引发异常。我可以使用对Thread.Sleep(0)的调用,但这非常昂贵。我正试图在收到请求时以一种不太难看的方式停止我的程序,然后使用终止标志并到处检查。@user626528:“以一种不太难看的方式,然后使用终止标志并到处检查”——检查用户定义标志之间的区别是什么,检查“IsInterrupted”标志?@user626528:C#可以处理全局变量,而且与流行的观点相反,它们并非在所有情况下都是邪恶的。你可能不需要传递任何东西。我建议您再问一个关于如何实现您的需求的问题,而不要预先假设解决方案。@user626528:由线程id索引的完成标志的全局集合。具有自己完成标志的线程子类。将
x
减少到可接受的程度。一个可由任何线程调用的函数,用于快速睡眠并查看是否被中断。这四个函数立即出现在我的脑海中,我毫不怀疑它们有不足之处,但底线仍然是:C#没有固有的isInterrupted()调用(除非像JSkeet这样更通晓知识的人出现并证明我错了),所以你必须做点什么:-)