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

◆ GetOpenedEnumerator()

IEnumerator< TOutput > System.Linq.Parallel.QueryOperator< TOutput >.GetOpenedEnumerator ( ParallelMergeOptions? mergeOptions,
bool suppressOrder,
bool forEffect,
QuerySettings querySettings )
inlinepackageinherited

Definition at line 45 of file QueryOperator.cs.

46 {
47 if (querySettings.ExecutionMode.Value == ParallelExecutionMode.Default && LimitsParallelism)
48 {
49 IEnumerable<TOutput> source = AsSequentialQuery(querySettings.CancellationState.ExternalCancellationToken);
50 return ExceptionAggregator.WrapEnumerable(source, querySettings.CancellationState).GetEnumerator();
51 }
53 if (!mergeOptions.HasValue)
54 {
55 mergeOptions = querySettings.MergeOptions;
56 }
57 if (querySettings.CancellationState.MergedCancellationToken.IsCancellationRequested)
58 {
59 querySettings.CancellationState.ExternalCancellationToken.ThrowIfCancellationRequested();
60 throw new OperationCanceledException();
61 }
64 queryResults.GivePartitionedStream(partitionedStreamMerger);
65 if (forEffect)
66 {
67 return null;
68 }
69 return partitionedStreamMerger.MergeExecutor.GetEnumerator();
70 }
IEnumerable< TOutput > AsSequentialQuery(CancellationToken token)
QueryResults< TOutput > GetQueryResults(QuerySettings querySettings)

References System.Linq.Parallel.QueryOperator< TOutput >.AsSequentialQuery(), System.Collections.Generic.Dictionary< TKey, TValue >.GetEnumerator(), System.Linq.Parallel.QueryOperator< TOutput >.GetQueryResults(), System.Linq.Parallel.QueryOperator< TOutput >.LimitsParallelism, System.Linq.Parallel.QueryOperator< TOutput >.OutputOrdered, and System.Linq.source.