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