我通过使用委托调用方法,目标函数在完成后调用回调。但是我确实要等到它的回调被调用才能得到数据。
例如:
//setup
public IAsyncResult BeginGetTies(Request request, AsyncCallback cb, object asyncState)
{
_service.GetTiesCompleted += Callback;
_gets = new getTimeSeriesData(GetTies);
IAsyncResult r = _gets.BeginInvoke(request, cb, asyncState);
return r;
}
private void GetTies(Request request)
{
_service.GetTies(tsr, id);
}
private void Callback(object sender, event e)
{
// this gets called after EndGet
}
现在这个_service.GetTies
使用带有事件的回调。但是,当_service.GetTies
调用完成时,我得到了控制权。之后调用回调。我想等到调用回调,以便我可以使用结果。
请帮忙。
答案 0 :(得分:0)
使用WaitHandles可以获得所需的结果。
IAsyncResult result1 = Method.BeginInvoke(10, MyCallback, null)
result1.AsyncWaitHandle.WaitOne(); // blocks until finished