0

我开发了使用线程来完成任务的应用程序,我想在进程中间关闭正在运行的应用程序,它关闭但线程在后台运行。

现在我想显示创建我的应用程序的活动线程。但困难是,当我从 vs 线程启动应用程序时,任务管理器中会显示 14-19 个线程而不运行应用程序。

你能告诉我只显示那些由我的应用程序而不是系统创建的线程吗?

4

3 回答 3

4

为什么不使用Process.Threads?以下应该为您提供在您的进程下运行的所有线程。

var myProcess = Process.GetCurrentProcess();
var myThreads = myProcess.Threads;
于 2012-09-18T05:48:50.007 回答
0

这一行可能会帮助你。

System.Diagnostics.Process.GetCurrentProcess().Threads.Count
于 2012-09-18T05:56:06.060 回答
0

我会稍微不同地处理这个问题。我会跟踪我自己启动的线程数量。

我希望我假设你应该有 1 个 UI 线程,然后在你启动它们时有 x 个新线程是正确的。如果您想要已启动的线程总数,可能会在您的应用程序某处随每个启动的线程递增一个静态 int,并随每个停止的线程递减该 int。

您可能需要锁定静态 int 的递增和递减代码,以确保两个线程不会同时更改值。

.Net 有很多库可以做到这一点。如果您有时间,我建议您阅读这篇文章,因为它可能会推动您朝着正确的方向前进。

于 2012-11-06T22:32:00.943 回答