我正在使用IAsyncResult模式使用一些较旧的代码。已经为开始和结束操作定义了委托。我应该如何将它们重构为基于任务的,而不必担心代表的实现?
当前代码示例:
this.CallAsync(
(thisRef, t, c, s) => thisRef.SomeMethod(thisRef.targetHost, t, c, s),
(thisRef, r) => thisRef.SomeMethod2(r));
其中的定义如下:
void CallAsync(BeginCall beginCall, EndCall endCall) {
// do some async operations with beginCall and endCall
}
delegate IAsyncResult BeginCall(T thisPtr, TimeSpan timeout, AsyncCallback callback, object state);
delegate void EndCall(T thisPtr, IAsyncResult r);