Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WMI有哪些替代方法可用于获取打印机的状态?_C#_.net_Printing_Wmi - Fatal编程技术网

C# WMI有哪些替代方法可用于获取打印机的状态?

C# WMI有哪些替代方法可用于获取打印机的状态?,c#,.net,printing,wmi,C#,.net,Printing,Wmi,C/.NET中有哪些选项可用于获取已安装打印机的状态?我们需要的唯一信息是,如果打印机处于打开或关闭状态,屏幕上会有一个小指示灯,指示“打印机就绪”或“打印机脱机” 我们的应用程序是一个运行在嵌入式PC上的小型客户端。我们发现WMI Windows进程内存不足。在我的开发PC上观看它时,它使用的内存量慢慢增加,似乎出现了内存泄漏。在内存有限的嵌入式设备上,这是不可接受的,我们在几个小时后发现应用程序崩溃。我会尝试解决内存泄漏问题,但如果找不到,可以专门使用PInvoke调用。请参阅示例说明:还有

C/.NET中有哪些选项可用于获取已安装打印机的状态?我们需要的唯一信息是,如果打印机处于打开或关闭状态,屏幕上会有一个小指示灯,指示“打印机就绪”或“打印机脱机”


我们的应用程序是一个运行在嵌入式PC上的小型客户端。我们发现WMI Windows进程内存不足。在我的开发PC上观看它时,它使用的内存量慢慢增加,似乎出现了内存泄漏。在内存有限的嵌入式设备上,这是不可接受的,我们在几个小时后发现应用程序崩溃。

我会尝试解决内存泄漏问题,但如果找不到,可以专门使用PInvoke调用。请参阅示例说明:还有一些WMI帖子可以帮助您比较现有内容,并查看是否可以找到内存泄漏

您是否尝试处理内存泄漏?是WMI进程wmiprvse.exe在增加,因此内存泄漏似乎超出了我的控制范围。我每秒都在循环中执行以下操作:-ManagementObjectSearcher searcher=new ManagementObjectSearcher Select*FROM Win32_Printer;foreach ManagementObject printer in searcher.Get{//检查打印机名称并使用work offline属性的值触发事件}仍然可能是您的代码没有释放另一端。尝试只使用一个ManagementObjectSearcher我也尝试过只使用一个ManagementObjectSearcher静态实例的方法,但我仍然看到WMI进程继续增长。