我们有一个第三方应用程序存在问题,需要在Citrix环境中监控并在必要时终止该进程。目前只能通过轮询的方式来实现,但这种方法不够优雅,需要使用定时任务。我希望能够编写一个服务来监控并检测该进程,如果运行时间过长,则杀死它。因此,我在Visual Studio中启动了一个Windows服务项目,并找到了this code from CodeProject,该代码使用ManagementEventWatcher注册WMI。
这段代码的问题在于它说“this.OnEventArrived”的地方,我遇到了以下错误:
错误1:'MyServiceApp.Service1'不包含对'OnEventArrived'的定义,也没有接受类型为'MyServiceApp.Service1'的第一个参数的扩展方法'OnEventArrived'可以找到(您是否缺少使用指令或程序集引用?)
怎么回事?
string pol = "2";
string appName = "MyApplicationName";
string queryString =
"SELECT *" +
" FROM __InstanceOperationEvent " +
"WITHIN " + pol +
" WHERE TargetInstance ISA 'Win32_Process' " +
" AND TargetInstance.Name = '" + appName + "'";
// You could replace the dot by a machine name to watch to that machine
string scope = @"\\.\root\CIMV2";
// create the watcher and start to listen
ManagementEventWatcher watcher = new ManagementEventWatcher(scope, queryString);
watcher.EventArrived += new EventArrivedEventHandler(this.OnEventArrived);
watcher.Start();
这段代码的问题在于它说“this.OnEventArrived”的地方,我遇到了以下错误:
错误1:'MyServiceApp.Service1'不包含对'OnEventArrived'的定义,也没有接受类型为'MyServiceApp.Service1'的第一个参数的扩展方法'OnEventArrived'可以找到(您是否缺少使用指令或程序集引用?)
怎么回事?
EventArrived
的事件处理程序/回调方法this.OnEventArrived
?它有什么签名? - stakx - no longer contributing