无法使用Delegate和其他功能

时间:2013-11-14 02:19:11

标签: c# .net asynchronous callback delegates

我通过使用委托调用方法,目标函数在完成后调用回调。但是我确实要等到它的回调被调用才能得到数据。

例如:

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

请帮忙。

1 个答案:

答案 0 :(得分:0)

使用WaitHandles可以获得所需的结果。

IAsyncResult result1 = Method.BeginInvoke(10, MyCallback, null)
result1.AsyncWaitHandle.WaitOne();  // blocks until finished