【发布时间】:2025-12-03 00:10:01
【问题描述】:
我正在尝试监视我们的服务器,并且需要捕获 __InstanceCreationEvent 以便在创建 Win32_PrintJob 时收到通知。为此,我尝试使用 ManagementEventWatcher,它几乎可以正常工作,但 Watcher 错过了一些 PrintJob 创作。
ManagementEventWatcher watcher =
new ManagementEventWatcher(Server.Name + @"\root\cimv2",
"Select * From __InstanceCreationEvent Within 1
Where TargetInstance ISA 'Win32_PrintJob'");
watcher.EventArrived += PrintJobCreated;
watcher.Start();
每当创建一个非常短/小的 PrintJob 时,例如一个测试页面,我一直没有收到创建事件。我不知道,但我想这是因为 PrintJob 是在 1 秒计时器用完之前完成的,这可能吗?
但是。有没有办法接收 100% 的所有 PrintJob 创作?
或者使用其他机制比 WMI-watcher 更好?
更新
我尝试将 within 更改为 0.1 效果更好,但是 100 毫秒在这里有意义吗?
【问题讨论】: