2013-10-11 31 views
0

我使用WMI获得USB序列号,当我提出以下电话: -ManagementObjectSearcher增加了在等待,睡眠一个新的线程或加入状态

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

我在调试模式下的线程看窗口中,我看到一个新的线程在这个语句执行后立即添加,这是一个工作线程,位置为“[在睡眠中,等待或连接]”。

你能告诉为什么它增加了线程,然后,当我走出这个代码块,螺纹仍处于存活和运行状态(我可以看到使用Thread.CurrentThread)

谢谢提前。

回答

1

ManagementObjectSearcher是一次性的。尝试把它在一个using语句:

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

或手动调用Dispose方法:

managementObjectSearcher.Dispose(); 
相关问题