ValueTask<TResult>.Preserve Method
Definition
Important
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)
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.