ValueTask.Preserve Method


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

 System::Threading::Tasks::ValueTask Preserve();
public System.Threading.Tasks.ValueTask Preserve ();
member this.Preserve : unit -> System.Threading.Tasks.ValueTask
Public Function Preserve () As ValueTask


The preserved ValueTask.


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

Applies to