C#等待来自外部SDK的事件

时间:2015-01-28 16:45:23

标签: c# .net events

我正在编写一个新程序,我必须等待一个事件。

在这段代码中,我注册了这个事件:

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();

现在这是不可能的,因为事件在一段时间后被调用。

为此,我必须等待写一个变量的偶数。 有没有等待此事件的方法?

非常感谢,

1 个答案:

答案 0 :(得分:0)

您可能会使用WaitOne调用阻止主线程,而您的库/ classes / system /无法实际调度处理程序ImageRequestResultFrameHandler _