【发布时间】:2011-12-07 13:12:57
【问题描述】:
我正在考虑实现一个可以同时运行多个操作的 API。 MS 推荐了基于事件的异步模式:
// Asynchronous methods.
public void Method1Async(string param, object userState);
public event Method1CompletedEventHandler Method1Completed;
public void CancelAsync(object userState);
public bool IsBusy { get; }
但这似乎有点笨拙 - 它要求客户端过滤掉不适合他们的回复,并在完成后断开事件处理程序等。我的想法更像是:
AsyncOperation1(string parm, Action<T> callback)
每个客户端都会直接获得自己的结果。我无法弄清楚如何优雅地支持取消。我想显而易见的事情是 AsyncOperation1 返回某种可以传递给 CancelAsync 方法的令牌。我想了解更多关于 .Net 或其他可以适当翻译的语言中常用的其他异步模式
【问题讨论】:
标签: .net asynchronous