protected override void InternalInitBufferObjects() { Buffer = new BufferBlock <TOutput>(new DataflowBlockOptions() { BoundedCapacity = MaxBufferSize }); Completion = new Task( () => { try { OnExecutionDoAsyncWork(); CompleteBufferOnPredecessorCompletion(); ErrorSource?.CompleteBufferOnPredecessorCompletion(); CleanUpOnSuccess(); } catch (Exception e) { FaultBufferOnPredecessorCompletion(e); ErrorSource?.FaultBufferOnPredecessorCompletion(e); CleanUpOnFaulted(e); throw e; } } , TaskCreationOptions.LongRunning); }
private void LetErrorSourceFinishUp() => ErrorSource?.CompleteBufferOnPredecessorCompletion();