等待事件处理

Ton*_*oni 5 c# events wait

我有一个函数,我们称之为Func1和it containsFunc2&事件处理程序.

现在我想要实现的是not let函数(Func1)返回值,直到Func2触发并处理事件.

基本上Func1将字符串作为返回值,并在事件处理程序中设置字符串值.所以我需要等待处理事件然后返回值.

代码示例

    public static string Fun1 ()
    {
        string stringToReturn = String.Empty;
        Func2(); //Func2 will after few sec fire event bellow 

        example.MyEvent += (object sender, WebBrowserDocumentCompletedEventArgs e) =>
                               {
                                   stringToReturn = "example"; //this wont be hardcoded
                               };

        //wait for event to be handled and then return value
        return stringToReturn;
    }
Run Code Online (Sandbox Code Playgroud)

Aas*_*set 8

你可以使用这AutoResetEvent门课.实例化它var evt = new AutoResetEvent(false);,调用evt.WaitOne()您想要等待的位置,以及evt.Set();您想要发出等待代码可以继续的信号.

如果您有许多涉及事件的"等待"情况,您还可以查看Reactive Extensions(Rx).