ValueTask Struktúra

Definíció

Egy aszinkron művelet várt eredményét adja meg.

public value class ValueTask : IEquatable<System::Threading::Tasks::ValueTask>
public readonly struct ValueTask : IEquatable<System.Threading.Tasks.ValueTask>
type ValueTask = struct
Public Structure ValueTask
Implements IEquatable(Of ValueTask)
Öröklődés
ValueTask
Megvalósítás

Megjegyzések

Előfordulhat ValueTask , hogy egy példányt várnak vagy átalakítanak egy felhasználóvá TaskAsTask. Egy ValueTask példány csak egyszer várható meg, és a felhasználók csak a példány befejezéséig hívhatnak GetAwaiter() . Ha ezek a korlátozások elfogadhatatlanok, konvertálja a ValueTask függvényt egy Task hívással AsTask.

A következő műveleteket soha nem szabad végrehajtani egy ValueTask példányon:

  • Többször is vár a példányra.
  • Többször is hívhat AsTask .
  • A példányt ezen technikák közül több használatával is felhasználhatja.

Ha a fentiek bármelyikét megteszi, az eredmények nem lesznek meghatározva.

Az A ValueTask olyan struktúra, amely egy vagy egy Task példány körbefuttatására IValueTaskSource képes. Ha olyan példányt ValueTask ad vissza, amely egy IValueTaskSource aszinkron metódusból tördeli a példányt, a nagy átviteli sebességű alkalmazások elkerülhetik a lefoglalásokat újrafelhasználható IValueTaskSource objektumok készletével. További információ : A Miértek, a Whats és a Mikor értéktask.

Ahelyett, hogy használnál némi ValueTaskTask többletterhelést. Mivel ValueTask egy több mezőből álló struktúra, a metódusból való visszaadása több adat másolását eredményezi, mint egyetlen Task hivatkozás visszaadása. Ezért az aszinkron metódusok alapértelmezett választása, amely nem ad vissza eredményt, egy Task. Csak akkor, ha a teljesítményelemzés azt bizonyítja, hogy érdemes ValueTask a .Task A Task.CompletedTask tulajdonság használatával egy sikeresen befejezett egytonnát kell visszaadni abban az esetben, ha egy, a befejezést szinkron módon és sikeresen visszaadó Task metódust ad vissza.

Note

A ValueTask típus használata a C# 7.0-tól kezdve támogatott, és a Visual Basic egyik verziója sem támogatja.

Note

A paraméter nélküli konstruktor vagy a default(ValueTask) szintaxis (nulla inicializált struktúra) által létrehozott példány szinkron, sikeresen befejezett műveletet jelöl.

Konstruktorok

Name Description
ValueTask(IValueTaskSource, Int16)

Inicializálja az osztály új példányát a ValueTask műveletet jelképező megadott IValueTaskSource objektummal.

ValueTask(Task)

Inicializálja az osztály új példányát a ValueTask műveletet jelképező megadott feladattal.

Tulajdonságok

Name Description
CompletedTask

Olyan feladatot kap, amely már sikeresen befejeződött.

IsCanceled

Olyan értéket kap, amely jelzi, hogy ez az objektum megszakított műveletet jelöl-e.

IsCompleted

Olyan értéket kap, amely jelzi, hogy ez az objektum befejezett műveletet jelöl-e.

IsCompletedSuccessfully

Olyan értéket kap, amely jelzi, hogy ez az objektum sikeresen befejezett műveletet jelöl-e.

IsFaulted

Beolvas egy értéket, amely jelzi, hogy ez az objektum egy sikertelen műveletet jelöl-e.

Metódusok

Name Description
AsTask()

Lekéri Task az ezt ValueTaskjelképező objektumot.

ConfigureAwait(Boolean)

Egy várakozót konfigurál ehhez az értékhez.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális ValueTask példánnyal.

Equals(ValueTask)

Meghatározza, hogy a megadott ValueTask objektum egyenlő-e az aktuális ValueTask objektummal.

FromCanceled(CancellationToken)

Létrehoz egy ValueTask , a megadott lemondási jogkivonattal történő lemondás miatt befejeződött elemet.

FromCanceled<TResult>(CancellationToken)

Létrehoz egy ValueTask<TResult> , a megadott lemondási jogkivonattal történő lemondás miatt befejeződött elemet.

FromException(Exception)

Létrehoz egy ValueTask , a megadott kivétellel befejezett értéket.

FromException<TResult>(Exception)

Létrehoz egy ValueTask<TResult> , a megadott kivétellel befejezett értéket.

FromResult<TResult>(TResult)

ValueTask<TResult> A megadott eredménnyel sikeresen befejezett eredményt hoz létre.

GetAwaiter()

Létrehoz egy várakozót ehhez az értékhez.

GetHashCode()

A példány kivonatkódját adja vissza.

Preserve()

Lekéri azokat ValueTask a elemet, amelyeket a jövőben bármikor használhat.

Operátorok

Name Description
Equality(ValueTask, ValueTask)

Az egyenlőség két ValueTask értékét hasonlítja össze.

Inequality(ValueTask, ValueTask)

Meghatározza, hogy két ValueTask érték egyenlőtlen-e.

A következőre érvényes: