我正在编写一个新程序,我必须等待一个事件。
在这段代码中,我注册了这个事件:
requestor.ResultFrameReceived += ImageRequestResultFrameHandler_;
引发的事件如下:
private void ImageRequestResultFrameHandler_(uint requestId, AvgError error, IFrame frame)
{
}
事件ResultFrameReceived
是从外部编译的sdk加载的。
我尝试了以下内容:
ewh = new EventWaitHandle(false, EventResetMode.ManualReset);
MethodThatRegistersEvent();
ewh.WaitOne();
方法MethodThatRegistersEvent()
调用注册事件ResultFrameReceived
的方法。
当在代码末尾调用注册的方法(ImageRequestResultFrameHandler_
)时,我会调用:ewh.Set();
来停止服务员,但它不起作用。
我有一个无限循环,似乎永远不会引发事件。
更新
我试着更好地解释我的情况。
在我的桌面应用程序中,我必须使用外部编译的sdk。 这个外部sdk使用事件返回给我一些东西。
因此,我使用以下代码注册该事件:
requestor.ResultFrameReceived += ImageRequestResultFrameHandler_;
一切正常,但我希望转换此事件,以便将价值返回给我。 像:
String a = code();
现在这是不可能的,因为事件在一段时间后被调用。
为此,我必须等待写一个变量的偶数。 有没有等待此事件的方法?
非常感谢,
答案 0 :(得分:0)
您可能会使用WaitOne调用阻止主线程,而您的库/ classes / system /无法实际调度处理程序ImageRequestResultFrameHandler _