我正在使用WMI获取usb序列号,当我拨打以下电话时: -
var managementObjectSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDiskToPartition");
我处于调试模式并在Threads窗口下观察,我看到一个新线程在执行此语句后立即添加,该语句是一个工作线程,其位置为“[在睡眠,等待或加入]”。
你能说出为什么它添加了线程然后当我离开这段代码时,线程仍处于活动和运行状态(我可以看到使用Thread.CurrentThread)
提前致谢。
答案 0 :(得分:1)
ManagementObjectSearcher
是一次性的。尝试将其放入using语句中:
using(var managementObjectSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDiskToPartition"))
{
//do whatever with managementObjectSearcher
}
或手动调用Dispose方法:
managementObjectSearcher.Dispose();