ValueTask<TResult>.Preserve Method

Definition

Gets a ValueTask<TResult> that may be used at any point in the future.

C#
public System.Threading.Tasks.ValueTask<TResult> Preserve();

Returns

A task object for future use.

Remarks

Because a ValueTask<TResult> can be backed by a pooled IValueTaskSource<TResult>, it is not safe to await an arbitrary ValueTask<TResult> multiple times. You can use the Preserve() method to convert this ValueTask<TResult> into the instance backed by a regular Task<TResult> that is safe to await multiple times. This method is similar to AsTask(), but it returns the same ValueTask<TResult> instance when this ValueTask<TResult> represents a successful synchronously completed operation. After calling Preserve() the original ValueTask<TResult> should never be used again.

Applies to

Produkt Versioner
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Standard 2.0 (package-provided), 2.1