Допустим, у меня есть код, который использует модель асинхронного программирования, то есть он предоставляет следующие методы в качестве группы, которые могут использоваться синхронно или асинхронно:
public MethodResult Operation(<method params>);
public IAsyncResult BeginOperation(<method params>, AsyncCallback callback, object state);
public MethodResult EndOperation(IAsyncResult ar);
Я хочу обернуть этот код дополнительным слоем, который преобразует его в управляемую событиями асинхронную модель, например:
public void OperationAsync(<method params>);
public event OperationCompletedEventHandler OperationCompleted;
public delegate void OperationCompletedEventHandler(object sender, OperationCompletedEventArgs e);
Есть ли у кого-нибудь какое-либо руководство (или ссылки на такое руководство) о том, как этого добиться?