WMI内在事件。资源

时间:2010-12-21 12:46:35

标签: c# wmi

我订阅像这样的usb插入事件

select * FROM __INSTANCECREATIONEVENT WITHIN 3 WHERE TARGETINSTANCE ISA Win32_DiskDrive

插入usb闪光灯后,它每隔3秒闪烁一次。这是轮询间隔和内部事件通过轮询查询中的对象来工作。现在,我们知道这些类型的事件可能是资源昂贵的。 (将值设置为大于3有时会阻塞这些事件,并且客户端程序不会得到通知)。

还有其他方法可以做到这一点,以便usb不会一直被扫描吗? 可能有一些外在事件可用吗?

现在,我看到的唯一解决方案就是取消订阅上面的事件,一旦它触发并在__INSTANCEDELETIONEVENT处理程序中重新订阅它。嗯,虽然deletionevent也会轮询磁盘驱动器控制器(

1 个答案:

答案 0 :(得分:1)

设备通知的另一种机制是RegisterDeviceNotification,您可以在此处阅读:http://msdn.microsoft.com/en-us/library/aa363432.aspx