【发布时间】:2013-11-14 02:19:11
【问题描述】:
我正在使用委托调用方法,目标函数在完成后调用回调。但是我确实想等到它的回调被调用,以便我可以获取数据。
例如:
//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 调用完成时,我会重新获得控制权。之后调用回调。我想等到回调被调用,以便我可以使用结果。
请帮忙。
【问题讨论】:
-
您使用的是什么版本的 .NET?
-
有趣。所以你想要回调而不是异步方面?为什么不直接调用函数呢?
-
我想两者都用。问题是,一旦 GetTies 完成,就会调用 EndGet,但数据来自 Callback。如果我不能解决这个问题,那么我将使用同步模型,但我确实想找到解决这个问题的方法。
标签: c# .net asynchronous callback delegates