Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets a ValueTask<TResult> that may be used at any point in the future.
public: System::Threading::Tasks::ValueTask<TResult> Preserve();
public System.Threading.Tasks.ValueTask<TResult> Preserve ();
member this.Preserve : unit -> System.Threading.Tasks.ValueTask<'Result>
Public Function Preserve () As ValueTask(Of TResult)
A task object for future use.
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.