Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ BatchedJoinBlock() [4/4]

System.Threading.Tasks.Dataflow.BatchedJoinBlock< T1, T2, T3 >.BatchedJoinBlock ( int batchSize,
GroupingDataflowBlockOptions dataflowBlockOptions )
inline

Definition at line 275 of file BatchedJoinBlock.cs.

276 {
277 if (batchSize < 1)
278 {
279 throw new ArgumentOutOfRangeException("batchSize", System.SR.ArgumentOutOfRange_GenericPositive);
280 }
281 if (dataflowBlockOptions == null)
282 {
283 throw new ArgumentNullException("dataflowBlockOptions");
284 }
285 if (!dataflowBlockOptions.Greedy || dataflowBlockOptions.BoundedCapacity != -1)
286 {
287 throw new ArgumentException(System.SR.Argument_NonGreedyNotSupported, "dataflowBlockOptions");
288 }
292 {
293 ((BatchedJoinBlock<T1, T2, T3>)owningSource).CompleteEachTarget();
294 });
296 {
297 if (_target1.Count > 0 || _target2.Count > 0 || _target3.Count > 0)
298 {
300 }
301 };
303 {
305 _source.Complete();
306 }, _source.AddException, Complete);
310 _source.Completion.ContinueWith(delegate(Task completed, object state)
311 {
313 dataflowBlock.Fault(completed.Exception);
314 }, this, CancellationToken.None, Common.GetContinuationOptions() | TaskContinuationOptions.OnlyOnFaulted, TaskScheduler.Default);
315 Common.WireCancellationToComplete(dataflowBlockOptions.CancellationToken, _source.Completion, delegate(object state)
316 {
317 ((BatchedJoinBlock<T1, T2, T3>)state).CompleteEachTarget();
318 }, this);
320 if (log.IsEnabled())
321 {
322 log.DataflowBlockCreated(this, dataflowBlockOptions);
323 }
324 }
static string ArgumentOutOfRange_GenericPositive
Definition SR.cs:1018
static string Argument_NonGreedyNotSupported
Definition SR.cs:28
Definition SR.cs:7
readonly SourceCore< Tuple< IList< T1 >, IList< T2 > > > _source
readonly BatchedJoinBlockTargetSharedResources _sharedResources
readonly BatchedJoinBlockTarget< T2 > _target2
readonly BatchedJoinBlockTarget< T1 > _target1
readonly BatchedJoinBlockTarget< T3 > _target3
static TaskContinuationOptions GetContinuationOptions(TaskContinuationOptions toInclude=TaskContinuationOptions.None)
Definition Common.cs:262
static void WireCancellationToComplete(CancellationToken cancellationToken, Task completionTask, Action< object > completeAction, object completeState)
Definition Common.cs:93

References System.Threading.Tasks.Dataflow.BatchedJoinBlock< T1, T2, T3 >._batchSize, System.Threading.Tasks.Dataflow.BatchedJoinBlock< T1, T2, T3 >._sharedResources, System.Threading.Tasks.Dataflow.BatchedJoinBlock< T1, T2, T3 >._source, System.Threading.Tasks.Dataflow.BatchedJoinBlock< T1, T2, T3 >._target1, System.Threading.Tasks.Dataflow.BatchedJoinBlock< T1, T2, T3 >._target2, System.Threading.Tasks.Dataflow.BatchedJoinBlock< T1, T2, T3 >._target3, System.SR.Argument_NonGreedyNotSupported, System.SR.ArgumentOutOfRange_GenericPositive, System.Threading.Tasks.Dataflow.BatchedJoinBlock< T1, T2, T3 >.Complete(), System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget< T >.Count, System.Threading.Tasks.TaskScheduler.Default, System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget< T >.GetAndEmptyMessages(), System.Threading.Tasks.Dataflow.Internal.Common.GetContinuationOptions(), System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.Log, System.Threading.CancellationToken.None, System.state, and System.Threading.Tasks.Dataflow.Internal.Common.WireCancellationToComplete().