.NET是否检测外部代码中的线程退出?

.NET是否检测外部代码中的线程退出?,.net,multithreading,.net,Multithreading,我正在构建一个多线程应用程序可以使用的库。我需要一种方法来确定某个特定线程是否正在退出 如果您不直接拥有某个线程,是否有方法添加挂钩或在该线程退出时得到通知 线程中止是异常的,因此我不关心中止,只关心正确的退出 如果可能的话,这将大大简化库 有什么想法吗?您可以自己启动一个单独的线程,然后Join()将其连接到所讨论的线程 但是,我看不到任何更简单的方法来退出事件。 (轮询IsAlive很少是一个好的选择)HmmmJoin()是一个好主意。有点危险,但值得一试。谢谢@查克里特:如果你用一个专门的

我正在构建一个多线程应用程序可以使用的库。我需要一种方法来确定某个特定线程是否正在退出

如果您不直接拥有某个
线程,是否有方法添加挂钩或在该线程退出时得到通知

线程中止是异常的,因此我不关心中止,只关心正确的退出

如果可能的话,这将大大简化库


有什么想法吗?

您可以自己启动一个单独的线程,然后
Join()
将其连接到所讨论的线程

但是,我看不到任何更简单的方法来退出
事件。

(轮询
IsAlive
很少是一个好的选择)

Hmmm
Join()
是一个好主意。有点危险,但值得一试。谢谢@查克里特:如果你用一个专门的“侍者”线程来称呼它,这并不危险。最坏的情况是,你只会浪费一根线。(您可能需要一个超时)您是否知道多个线程是否可能在同一目标线程上调用
Join
,或者在同一线程上多次调用Join?如果不可能,或者由于任何原因(在其他线程实现中)未定义,那么您可能会中断程序,因为您的侍者库刚刚从线程的其他观察者那里“抓取”了连接。@Christian:我没有尝试过,但我无法想象它会不起作用。医生什么也没说。