如何:调查进程的线程使用情况
更新:2007 年 11 月
可以通过读取 Process 组件的 Threads 属性值来查看进程的线程。返回值的类型为 ProcessThreadCollection,其中包含代表进程中当前运行的操作系统线程的 ProcessThread 对象的集合。然后,可以循环访问该集合以查看各个线程属性。主线程不一定是集合中位于索引 0 处的线程。
调查进程的线程使用
如果进程不是用 Process 组件启动的,则将 Process 组件关联到所需的进程。有关更多信息,请参见如何:绑定到现有进程。
将进程的 Threads 属性值分配给 ProcessThread 类型的空集合变量。
循环访问数组索引以查看单个线程的属性。
下面的示例演示如何读取记事本的 Threads 属性,以及如何将值分配给空数组。然后读取 ProcessThread 数组中第一个线程的 BasePriority 值,并在名为 TextBox1 的文本框中显示该值。
Dim myCollection As ProcessThreadCollection Dim myProcesses() As Process ' Create an instance of the Process Component and associate ' it to the target process. myProcesses = Process.GetProcessesByName("Notepad.exe") ' Read the Process.Threads property and assign it to the empty array. myCollection = myProcesses(0).Threads ' Read desired ProcessThread property. Me.Textbox1.Text = myCollection(0).BasePriority.ToString()
ProcessThreadCollection threads; Process[] notepads; // Retrieve the Notepad processes. notepads = Process.GetProcessesByName("Notepad"); // Read the Process.Threads property. threads = notepads[0].Threads; // Read desired ProcessThread property. TextBox1.Text = threads[0].BasePriority.ToString();