我有一个与(List running threads of an external process)类似的问题,但是就我而言,我需要暂停或终止especific线程,就像进程黑客一样。我正在使用C#。
答案 0 :(得分:0)
我不知道您的实际问题是什么,但是如@Enigmativity所述,以困难的方式关闭线程不是一个好主意。我将建议一些选项,从它们所属的应用程序中关闭线程。
在您引用的帖子中,用户有兴趣关闭该应用程序。如果这是您真正想要的,则可以运行background中的所有线程,它们将在主线程关闭时关闭。
Thread thread = new Thread(WorkToDo) { IsBackground = true };
如果要在主线程仍然存在时关闭线程,则建议您强制执行线程的代码(WorkToDo)退出得更快。最简单的方法是在要关闭的线程上调用Thread.Abort,这将在工作代码中引发ThreadAbortException。您可以在线程实际关闭之前运行一些代码。这是完成的过程:
void WorkToDo()
{
try
{
// Your actual work code.
}
catch(ThreadAbortException)
{
// Code to run before thread closes.
}
}
您可以同时使用这两种方法。