我开发了使用线程来完成任务的应用程序,我想在进程中间关闭正在运行的应用程序,它关闭但线程在后台运行。
现在我想显示创建我的应用程序的活动线程。但困难是,当我从 vs 线程启动应用程序时,任务管理器中会显示 14-19 个线程而不运行应用程序。
你能告诉我只显示那些由我的应用程序而不是系统创建的线程吗?
我开发了使用线程来完成任务的应用程序,我想在进程中间关闭正在运行的应用程序,它关闭但线程在后台运行。
现在我想显示创建我的应用程序的活动线程。但困难是,当我从 vs 线程启动应用程序时,任务管理器中会显示 14-19 个线程而不运行应用程序。
你能告诉我只显示那些由我的应用程序而不是系统创建的线程吗?
为什么不使用Process.Threads?以下应该为您提供在您的进程下运行的所有线程。
var myProcess = Process.GetCurrentProcess();
var myThreads = myProcess.Threads;
这一行可能会帮助你。
System.Diagnostics.Process.GetCurrentProcess().Threads.Count
我会稍微不同地处理这个问题。我会跟踪我自己启动的线程数量。
我希望我假设你应该有 1 个 UI 线程,然后在你启动它们时有 x 个新线程是正确的。如果您想要已启动的线程总数,可能会在您的应用程序某处随每个启动的线程递增一个静态 int,并随每个停止的线程递减该 int。
您可能需要锁定静态 int 的递增和递减代码,以确保两个线程不会同时更改值。
.Net 有很多库可以做到这一点。如果您有时间,我建议您阅读这篇文章,因为它可能会推动您朝着正确的方向前进。