列出外部程序中正在运行的线程并暂停特定线程

时间:2018-09-27 11:44:11

标签: c#

我有一个与(List running threads of an external process)类似的问题,但是就我而言,我需要暂停或终止especific线程,就像进程黑客一样。我正在使用C#。

1 个答案:

答案 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.
  }
}

您可以同时使用这两种方法。