private void OnSingleActionCompleted(IAsyncResult asyncResult, AsyncCallInfo callInfo) { //??? Interlocked.Decrement(ref callInfo.PendingOps); if (callInfo.PendingOps == 0) { callInfo.Callback(callInfo); } }
public IAsyncResult BeginMultipleActions(IEnumerable <string> names, AsyncCallback callback, object state) { var callInfo = new AsyncCallInfo { Callback = callback, AsyncState = state }; callInfo.PendingOps = names.Count(); foreach (string name in names) { library.BeginAction(name, ar => OnSingleActionCompleted(ar, callInfo), null); } return(callInfo); }