Class ValueTaskCompletionSource
Represents the producer side of ValueTask.
Inherited Members
Namespace: DotNext.Threading.Tasks
Assembly: DotNext.Threading.dll
Syntax
public class ValueTaskCompletionSource : ManualResetCompletionSource, IValueTaskSource, ISupplier<TimeSpan, CancellationToken, ValueTask>, IFunctional
Remarks
See description of ValueTaskCompletionSource<T> for more information about behavior of the completion source.
Constructors
View SourceValueTaskCompletionSource(bool)
Initializes a new completion source.
Declaration
public ValueTaskCompletionSource(bool runContinuationsAsynchronously = true)
Parameters
| Type | Name | Description |
|---|---|---|
| bool | runContinuationsAsynchronously | Indicates that continuations must be executed asynchronously. |
Methods
View SourceCleanUp()
Resets internal state of this source.
Declaration
protected override void CleanUp()
Overrides
View SourceCreateLinkedTaskCompletionSource(object?, TimeSpan, CancellationToken)
Creates a linked TaskCompletionSource that can be used cooperatively to complete the task.
Declaration
public TaskCompletionSource CreateLinkedTaskCompletionSource(object? userData, TimeSpan timeout, CancellationToken token)
Parameters
| Type | Name | Description |
|---|---|---|
| object | userData | The custom data to be associated with the current version of the task. |
| TimeSpan | timeout | The timeout associated with the task. |
| CancellationToken | token | The cancellation token that can be used to cancel the task. |
Returns
| Type | Description |
|---|---|
| TaskCompletionSource | A linked TaskCompletionSource. |
Exceptions
| Type | Condition |
|---|---|
| InvalidOperationException | The source is in invalid state. |
CreateTask(TimeSpan, CancellationToken)
Creates a fresh task linked with this source.
Declaration
public ValueTask CreateTask(TimeSpan timeout, CancellationToken token)
Parameters
| Type | Name | Description |
|---|---|---|
| TimeSpan | timeout | The timeout associated with the task. |
| CancellationToken | token | The cancellation token that can be used to cancel the task. |
Returns
| Type | Description |
|---|---|
| ValueTask | A fresh uncompleted task. |
Remarks
This method must be called after Reset().
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException |
|
| InvalidOperationException | The source is in invalid state. |
GetCancellationException(CancellationToken)
Called automatically when cancellation detected.
Declaration
protected virtual Exception? GetCancellationException(CancellationToken token)
Parameters
| Type | Name | Description |
|---|---|---|
| CancellationToken | token | The token representing cancellation reason. |
Returns
| Type | Description |
|---|---|
| Exception | The exception representing task result; or null to complete successfully. |
Remarks
By default, this method returns OperationCanceledException as the task result.
GetTimeoutException()
Called automatically when timeout detected.
Declaration
protected virtual Exception? GetTimeoutException()
Returns
| Type | Description |
|---|---|
| Exception | The exception representing task result; or null to complete successfully. |
Remarks
By default, this method returns TimeoutException as the task result.
TrySetException<TOptions>(TOptions, Exception)
Attempts to complete the task unsuccessfully.
Declaration
public override sealed bool TrySetException<TOptions>(TOptions options, Exception e) where TOptions : ManualResetCompletionSource.ICompletionOptions, allows ref struct
Parameters
| Type | Name | Description |
|---|---|---|
| TOptions | options | The completion options. |
| Exception | e | The exception to be returned to the consumer. |
Returns
| Type | Description |
|---|---|
| bool | true if the result is completed successfully; false if the task has been canceled or timed out. |
Type Parameters
| Name | Description |
|---|---|
| TOptions |
Overrides
View SourceTrySetResult()
Attempts to complete the task successfully.
Declaration
public bool TrySetResult()
Returns
| Type | Description |
|---|---|
| bool | true if the result is completed successfully; false if the task has been canceled or timed out. |
TrySetResult<TOptions>(TOptions)
Attempts to complete the task successfully.
Declaration
public bool TrySetResult<TOptions>(TOptions options) where TOptions : ManualResetCompletionSource.ICompletionOptions, allows ref struct
Parameters
| Type | Name | Description |
|---|---|---|
| TOptions | options | The completion options. |
Returns
| Type | Description |
|---|---|
| bool | true if the result is completed successfully; false if the task has been canceled or timed out. |
Type Parameters
| Name | Description |
|---|---|
| TOptions |