0

我正在使用委托调用方法,目标函数在完成后调用回调。但是我确实想等到它的回调被调用,以便我可以获取数据。

例如:

//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呼叫完成时,我会重新获得控制权。之后调用回调。我想等到回调被调用,以便我可以使用结果。

请帮忙。

4

1 回答 1

0

使用WaitHandles应该可以得到你想要的结果。

IAsyncResult result1 = Method.BeginInvoke(10, MyCallback, null)
result1.AsyncWaitHandle.WaitOne();  // blocks until finished
于 2013-11-14T02:33:39.477 回答