ParallelHelperSortAsyncTKey, TValue(ArraySectionTKey, ArraySectionTValue, IComparerTKey, TaskConfig) Method

Sorts the elements in a pair of ArraySectionT instances asynchronously (one contains the keys, the other contains the corresponding values), potentially using multiple threads.

Definition

Namespace: KGySoft.Threading
Assembly: KGySoft.CoreLibraries (in KGySoft.CoreLibraries.dll) Version: 10.5.0
C#
public static Task<bool> SortAsync<TKey, TValue>(
	ArraySection<TKey> keys,
	ArraySection<TValue> values,
	IComparer<TKey>? comparer = null,
	TaskConfig? asyncConfig = null
)

Parameters

keys  ArraySectionTKey
The ArraySectionT that contains the keys to sort.
values  ArraySectionTValue
The ArraySectionT that contains the values that correspond to the keys in the keys collection. If the IsNull property of values is , then only the keys are sorted.
comparer  IComparerTKey  (Optional)
The IComparerT implementation to use when comparing elements, or to use a default comparer. This parameter is optional.
Default value: .
asyncConfig  TaskConfig  (Optional)
An optional configuration to adjust parallelization or cancellation. Reporting progress is not supported in sorting methods. This parameter is optional.
Default value: .

Type Parameters

TKey
The type of the elements in the keys collection.
TValue
The type of the elements in the values collection.

Return Value

TaskBoolean
A task that represents the asynchronous operation. Its result is , if the operation completed successfully, or , if the operation has been canceled and ThrowIfCanceled in asyncConfig parameter was .

Remarks

This method is not a blocking call even if the MaxDegreeOfParallelism property of the asyncConfig parameter is 1.

Exceptions

ArgumentExceptionThe IsNull property of values is and values has fewer elements than keys.
-or-
The comparer returned inconsistent results.
InvalidOperationExceptioncomparer is , and an element does not implement the IComparableT interface.
TaskCanceledExceptionThe operation has been canceled and ThrowIfCanceled in asyncConfig was . This exception is thrown when the result is awaited.

See Also