我有一个函数,我们称之为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)
你可以使用这AutoResetEvent门课.实例化它var evt = new AutoResetEvent(false);,调用evt.WaitOne()您想要等待的位置,以及evt.Set();您想要发出等待代码可以继续的信号.
如果您有许多涉及事件的"等待"情况,您还可以查看Reactive Extensions(Rx).
| 归档时间: |
|
| 查看次数: |
5841 次 |
| 最近记录: |