ValueTask ValueTask ValueTask ValueTask Struct

Definice

Poskytuje očekávaný výsledek asynchronní operace.Provides an awaitable result of an asynchronous operation.

public value class ValueTask : IEquatable<System::Threading::Tasks::ValueTask>
public struct ValueTask : IEquatable<System.Threading.Tasks.ValueTask>
type ValueTask = struct
Public Structure ValueTask
Implements IEquatable(Of ValueTask)
Dědičnost
Implementuje

Poznámky

Instance může být buď očekávána, nebo převedena Task na pomocí AsTask. ValueTaskA ValueTask instance may either be awaited or converted to a Task using AsTask. Instance může být očekávána pouze jednou a příjemci mohou volat GetAwaiter() až po dokončení instance. ValueTaskA ValueTask instance may only be awaited once, and consumers may not call GetAwaiter() until the instance has completed. Pokud tato omezení nesouhlasí, převeďte ValueTask na a Task voláním AsTask.If these limitations are unacceptable, convert the ValueTask to a Task by calling AsTask.

Následující operace by nikdy neměly být provedeny u ValueTask instance:The following operations should never be performed on a ValueTask instance:

  • Očekává se instance víckrát.Awaiting the instance multiple times.
  • Volání AsTask je více než jednou.Calling AsTask multiple times.
  • Použití více než jednoho z těchto postupů ke spotřebování instance.Using more than one of these techniques to consume the instance.

Pokud provedete některou z výše uvedených výsledků, výsledky nejsou definovány.If you do any of the above, the results are undefined.

Je struktura, která může zabalit Task buď IValueTaskSource instanci, nebo. ValueTaskA ValueTask is a structure that can wrap either a Task or a IValueTaskSource instance. Vrácení, které zabalí IValueTaskSource instanci z asynchronní metody, umožňuje aplikacím s vysokou propustností vyhnout se přidělování pomocí fondu opakovaně použitelných IValueTaskSource objektů. ValueTaskReturning a ValueTask that wraps a IValueTaskSource instance from an asynchronous method enables high-throughput applications to avoid allocations by using a pool of reusable IValueTaskSource objects. Další informace najdete v tématu Principy podmínkami, co a kdy je ValueTask.For more information, see Understanding the Whys, Whats, and Whens of ValueTask.

Použití a ValueTask místo Task přináší určitou režii.Using a ValueTask instead of a Task introduces some overhead. Vzhledem ValueTask k tomu, že je struktura s více poli, která vrací z metody, má za následek kopírování většího množství Task dat v porovnání s vrácením jediného odkazu.Because ValueTask is a structure with multiple fields, returning it from the method results in copying more data compared to returning a single Task reference. V takovém případě výchozí volba pro jakoukoliv asynchronní metodu, která nevrací výsledek, by měla být vrácena Task.As such, the default choice for any asynchronous method that does not return a result should be to return a Task. Jenom v případě, že analýza výkonu prokáže, ValueTask že by se měla použít Taskmísto.Only if performance analysis proves it worthwhile should a ValueTask be used instead of a Task. Vlastnost by se měla použít k vrácení úspěšně dokončeného typu Singleton v případě, kdy metoda Task , která provede synchronní a úspěšně se dokončí synchronně. Task.CompletedTaskThe Task.CompletedTask property should be used to hand back a successfully completed singleton in the case where a method returning a Task completes synchronously and successfully.

Poznámka

Použití ValueTask typu je podporováno od C# 7,0 a není podporováno žádnou z verzí Visual Basic.The use of the ValueTask type is supported starting with C# 7.0 and is not supported by any version of Visual Basic.

Konstruktory

ValueTask(Task) ValueTask(Task) ValueTask(Task) ValueTask(Task)

Inicializuje novou instanci ValueTask třídy pomocí zadaného úkolu, který představuje operaci.Initializes a new instance of the ValueTask class using the supplied task that represents the operation.

ValueTask(IValueTaskSource, Int16) ValueTask(IValueTaskSource, Int16) ValueTask(IValueTaskSource, Int16) ValueTask(IValueTaskSource, Int16)

Inicializuje novou instanci ValueTask třídy pomocí zadaného IValueTaskSource objektu, který reprezentuje operaci.Initializes a new instance of the ValueTask class using the supplied IValueTaskSource object that represents the operation.

Vlastnosti

IsCanceled IsCanceled IsCanceled IsCanceled

Získá hodnotu, která označuje, zda tento objekt představuje zrušenou operaci.Gets a value that indicates whether this object represents a canceled operation.

IsCompleted IsCompleted IsCompleted IsCompleted

Získá hodnotu, která označuje, zda tento objekt představuje dokončenou operaci.Gets a value that indicates whether this object represents a completed operation.

IsCompletedSuccessfully IsCompletedSuccessfully IsCompletedSuccessfully IsCompletedSuccessfully

Získá hodnotu, která označuje, zda tento objekt představuje úspěšně dokončenou operaci.Gets a value that indicates whether this object represents a successfully completed operation.

IsFaulted IsFaulted IsFaulted IsFaulted

Získá hodnotu, která označuje, zda tento objekt představuje neúspěšnou operaci.Gets a value that indicates whether this object represents a failed operation.

Metody

AsTask() AsTask() AsTask() AsTask()

Načte objekt, který představuje toto ValueTask. TaskRetrieves a Task object that represents this ValueTask.

ConfigureAwait(Boolean) ConfigureAwait(Boolean) ConfigureAwait(Boolean) ConfigureAwait(Boolean)

Nakonfiguruje v této hodnotě await.Configures an awaiter for this value.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Určuje, zda je zadaný objekt stejný jako aktuální ValueTask instance.Determines whether the specified object is equal to the current ValueTask instance.

Equals(ValueTask) Equals(ValueTask) Equals(ValueTask) Equals(ValueTask)

Určuje, zda je ValueTask zadaný objekt stejný jako aktuální ValueTask objekt.Determines whether the specified ValueTask object is equal to the current ValueTask object.

GetAwaiter() GetAwaiter() GetAwaiter() GetAwaiter()

Vytvoří pro tuto hodnotu operátor await.Creates an awaiter for this value.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Vrátí kód hash této instance.Returns the hash code for this instance.

Preserve() Preserve() Preserve() Preserve()

ValueTask Získá, který může být použit kdykoli v budoucnosti.Gets a ValueTask that may be used at any point in the future.

Operátory

Equality(ValueTask, ValueTask) Equality(ValueTask, ValueTask) Equality(ValueTask, ValueTask) Equality(ValueTask, ValueTask)

Porovná ValueTask dvě hodnoty pro rovnost.Compares two ValueTask values for equality.

Inequality(ValueTask, ValueTask) Inequality(ValueTask, ValueTask) Inequality(ValueTask, ValueTask) Inequality(ValueTask, ValueTask)

Určuje, zda ValueTask jsou dvě hodnoty neshodné.Determines whether two ValueTask values are unequal.

Platí pro