コード例 #1
0
            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);
            }
コード例 #2
0
 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);
 }