public ParallelAsyncResult(TIteratorAsyncResult iteratorAsyncResult, ICollection <TWorkItem> workItems, BeginCall <TWorkItem> beginCall, EndCall <TWorkItem> endCall, TimeSpan timeout, AsyncCallback callback, object state) : base(callback, state) { this.iteratorAsyncResult = iteratorAsyncResult; this.workItems = workItems; this.endCall = endCall; this.actions = this.workItems.Count + 1; foreach (TWorkItem source in workItems) { try { beginCall(iteratorAsyncResult, source, timeout, completed, new CallbackState(this, source)); } catch (Exception e) { if (Fx.IsFatal(e)) { throw; } TryComplete(e, true); } } TryComplete(null, true); }
public ParallelAsyncResult(TIteratorAsyncResult iteratorAsyncResult, ICollection <TWorkItem> workItems, IteratorAsyncResult <TIteratorAsyncResult> .BeginCall <TWorkItem> beginCall, IteratorAsyncResult <TIteratorAsyncResult> .EndCall <TWorkItem> endCall, TimeSpan timeout, AsyncCallback callback, object state) : base(callback, state) { this.iteratorAsyncResult = iteratorAsyncResult; this.workItems = workItems; this.endCall = endCall; this.actions = (long)(this.workItems.Count + 1); foreach (TWorkItem workItem in workItems) { try { beginCall(iteratorAsyncResult, workItem, timeout, IteratorAsyncResult <TIteratorAsyncResult> .ParallelAsyncResult <TWorkItem> .completed, new IteratorAsyncResult <TIteratorAsyncResult> .ParallelAsyncResult <TWorkItem> .CallbackState(this, workItem)); } catch (Exception exception1) { Exception exception = exception1; if (Fx.IsFatal(exception)) { throw; } this.TryComplete(exception, true); } } this.TryComplete(null, true); }