ValueTask Struktúra
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
- 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() | |
| 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. |