如何从另一个线程监视C#线程
我在WPF应用程序的线程池中运行了几个线程。我需要监视它们,可能是从另一个线程,以查明是否所有这些线程都已终止。 我怎样才能做到这一点 为了简单起见,我的使用场景是:如何从另一个线程监视C#线程,c#,.net,wpf,threadpool,terminate,C#,.net,Wpf,Threadpool,Terminate,我在WPF应用程序的线程池中运行了几个线程。我需要监视它们,可能是从另一个线程,以查明是否所有这些线程都已终止。 我怎样才能做到这一点 为了简单起见,我的使用场景是: 点击按钮 在线程池中启动多个线程 启动另一个线程以监视线程池中的线程 锁定WPF应用程序的UI 当步骤3中的线程设置全局值以指示在(2)中启动的线程已终止时,释放锁 将线程池中的所有线程放在一个数组中。当您要等待池线程退出时,请使用WaitHandle.WaitAll等待线程完成。当前的问题实际上过于本地化。我不得不采用一种特殊的
将线程池中的所有线程放在一个数组中。当您要等待池线程退出时,请使用
WaitHandle.WaitAll
等待线程完成。当前的问题实际上过于本地化。我不得不采用一种特殊的方法来适应最初有缺陷的设计
我的方法是只要在线程启动时增加一个计数器,在线程终止时减少计数器的值。为了监视计数器的值,我启动了另一个线程来监视计数器的值。可能不是一种优雅的方法,但似乎效果不错。@Henk Hoterman:我认为他会编写自己的线程池,因为他想控制线程。如果使用内置池,那么整个想法是有缺陷的。尽管标题非常不同,但可能重复。这是关于相同的问题,并且有一个解决方案。