Class ValueTaskCompletionSource
Represents the producer side of ValueTask.
Implements
Inherited Members
Namespace: DotNext.Threading.Tasks
Assembly: DotNext.Threading.dll
Syntax
public class ValueTaskCompletionSource : ManualResetCompletionSource, IValueTaskSource, ISupplier<TimeSpan, CancellationToken, ValueTask>, IFunctional<Func<TimeSpan, CancellationToken, ValueTask>>
Remarks
See description of ValueTaskCompletionSource<T> for more information about behavior of the completion source.
Constructors
| Edit this page 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
| Edit this page View SourceCleanUp()
Resets internal state of this source.
Declaration
protected override void CleanUp()
Overrides
| Edit this page 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. |
OnCanceled(CancellationToken)
Called automatically when cancellation detected.
Declaration
protected virtual Exception? OnCanceled(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.
OnTimeout()
Called automatically when timeout detected.
Declaration
protected virtual Exception? OnTimeout()
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.
TrySetCanceled(short, CancellationToken)
Attempts to complete the task unsuccessfully.
Declaration
public bool TrySetCanceled(short completionToken, CancellationToken token)
Parameters
Type | Name | Description |
---|---|---|
short | completionToken | The completion token previously obtained from CreateTask(TimeSpan, CancellationToken) method. |
CancellationToken | token | The canceled token. |
Returns
Type | Description |
---|---|
bool | true if the result is completed successfully; false if the task has been canceled or timed out. |
TrySetCanceled(object?, short, CancellationToken)
Attempts to complete the task unsuccessfully.
Declaration
public bool TrySetCanceled(object? completionData, short completionToken, CancellationToken token)
Parameters
Type | Name | Description |
---|---|---|
object | completionData | The data to be saved in CompletionData property that can be accessed from within AfterConsumed() method. |
short | completionToken | The completion token previously obtained from CreateTask(TimeSpan, CancellationToken) method. |
CancellationToken | token | The canceled token. |
Returns
Type | Description |
---|---|
bool | true if the result is completed successfully; false if the task has been canceled or timed out. |
TrySetCanceled(object?, CancellationToken)
Attempts to complete the task unsuccessfully.
Declaration
public override sealed bool TrySetCanceled(object? completionData, CancellationToken token)
Parameters
Type | Name | Description |
---|---|---|
object | completionData | The data to be saved in CompletionData property that can be accessed from within AfterConsumed() method. |
CancellationToken | token | The canceled token. |
Returns
Type | Description |
---|---|
bool | true if the result is completed successfully; false if the task has been canceled or timed out. |
Overrides
| Edit this page View SourceTrySetException(short, Exception)
Attempts to complete the task unsuccessfully.
Declaration
public bool TrySetException(short completionToken, Exception e)
Parameters
Type | Name | Description |
---|---|---|
short | completionToken | The completion token previously obtained from CreateTask(TimeSpan, CancellationToken) method. |
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. |
TrySetException(object?, Exception)
Attempts to complete the task unsuccessfully.
Declaration
public override sealed bool TrySetException(object? completionData, Exception e)
Parameters
Type | Name | Description |
---|---|---|
object | completionData | The data to be saved in CompletionData property that can be accessed from within AfterConsumed() method. |
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. |
Overrides
| Edit this page View SourceTrySetException(object?, short, Exception)
Attempts to complete the task unsuccessfully.
Declaration
public bool TrySetException(object? completionData, short completionToken, Exception e)
Parameters
Type | Name | Description |
---|---|---|
object | completionData | The data to be saved in CompletionData property that can be accessed from within AfterConsumed() method. |
short | completionToken | The completion token previously obtained from CreateTask(TimeSpan, CancellationToken) method. |
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. |
TrySetResult()
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(short)
Attempts to complete the task successfully.
Declaration
public bool TrySetResult(short completionToken)
Parameters
Type | Name | Description |
---|---|---|
short | completionToken | The completion token previously obtained from CreateTask(TimeSpan, CancellationToken) method. |
Returns
Type | Description |
---|---|
bool | true if the result is completed successfully; false if the task has been canceled or timed out. |
TrySetResult(object?)
Attempts to complete the task successfully.
Declaration
public bool TrySetResult(object? completionData)
Parameters
Type | Name | Description |
---|---|---|
object | completionData | The data to be saved in CompletionData property that can be accessed from within AfterConsumed() method. |
Returns
Type | Description |
---|---|
bool | true if the result is completed successfully; false if the task has been canceled or timed out. |
TrySetResult(object?, short)
Attempts to complete the task successfully.
Declaration
public bool TrySetResult(object? completionData, short completionToken)
Parameters
Type | Name | Description |
---|---|---|
object | completionData | The data to be saved in CompletionData property that can be accessed from within AfterConsumed() method. |
short | completionToken | The completion token previously obtained from CreateTask(TimeSpan, CancellationToken) method. |
Returns
Type | Description |
---|---|
bool | true if the result is completed successfully; false if the task has been canceled or timed out. |