コード例 #1
0
 private void WorkItemWasSuccessful(AbstractBatchedWorkItem workItem, bool batchDone)
 {
     _results.Add(workItem.Result);
     if (batchDone)
     {
         Status = WorkStatus.Successful;
     }
 }
コード例 #2
0
ファイル: WorkBatch.cs プロジェクト: andrew44/bread-winner
        public bool WorkDone(AbstractBatchedWorkItem workItem)
        {
            if (_workBatchSize <= 0)
            {
                throw new ApplicationException("Batch completed");
            }

            Interlocked.Decrement(ref _workBatchSize);
            CompletedWorkItems.Add(workItem);

            return(_workBatchSize == 0);
        }
コード例 #3
0
        public bool WorkDone(AbstractBatchedWorkItem workItem)
        {
            if (_workBatchSize <= 0)
            {
                throw new ApplicationException("Batch completed");
            }

            var batchDone = Interlocked.Decrement(ref _workBatchSize) == 0;

            if (workItem.Status == WorkStatus.Failed)
            {
                Status = WorkStatus.Failed;
            }
            else
            {
                WorkItemWasSuccessful(workItem, batchDone);
            }

            return(batchDone);
        }