ManagementObjectSearcher在等待,睡眠或加入状态中添加新线程

时间:2013-10-11 12:44:09

标签: .net multithreading

我正在使用WMI获取usb序列号,当我拨打以下电话时: -

var managementObjectSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDiskToPartition");

我处于调试模式并在Threads窗口下观察,我看到一个新线程在执行此语句后立即添加,该语句是一个工作线程,其位置为“[在睡眠,等待或加入]”。

你能说出为什么它添加了线程然后当我离开这段代码时,线程仍处于活动和运行状态(我可以看到使用Thread.CurrentThread)

提前致谢。

1 个答案:

答案 0 :(得分:1)

ManagementObjectSearcher是一次性的。尝试将其放入using语句中:

using(var managementObjectSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDiskToPartition"))
{
    //do whatever with managementObjectSearcher 
}

或手动调用Dispose方法:

managementObjectSearcher.Dispose();