ValueTask Yapı
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Zaman uyumsuz bir işlemin beklenebilir bir sonucunu sağlar.
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)
- Devralma
- Uygulamalar
Açıklamalar
Bir ValueTask örnek beklenebilir veya kullanılarak Tasköğesine AsTask dönüştürülebilir. Bir ValueTask örnek yalnızca bir kez beklenebilir ve tüketiciler örnek tamamlanana kadar aramayabilir GetAwaiter() . Bu sınırlamalar kabul edilemezse çağrısı ValueTaskyaparak öğesini Task öğesine AsTask dönüştürün.
Aşağıdaki işlemler hiçbir zaman bir ValueTask örnekte gerçekleştirilmemelidir:
- Örneği birden çok kez bekliyor.
- Birden çok kez arama AsTask .
- Örneği kullanmak için bu tekniklerden birden fazlasını kullanma.
Yukarıdakilerden herhangi birini yaparsanız sonuçlar tanımlanmamış olur.
A ValueTask , bir veya örneğini sarmalayan Task bir IValueTaskSource yapıdır.
ValueTask Zaman uyumsuz bir yöntemden bir IValueTaskSource örneği sarmalayan bir döndürülmesi, yüksek aktarım hızına sahip uygulamaların yeniden kullanılabilir IValueTaskSource nesneler havuzu kullanarak ayırmaları önlemesini sağlar. Daha fazla bilgi için bkz. ValueTask'in Nedenlerini, Neleri ve Ne Zamanlarını Anlama.
yerine bir ValueTaskTask kullanmak bazı ek yük getirir.
ValueTask Birden çok alanı olan bir yapı olduğundan, bunu yöntemden döndürmek, tek Task bir başvuru döndürmeye kıyasla daha fazla veri kopyalamaya neden olur. Bu nedenle, sonuç döndürmeyen herhangi bir zaman uyumsuz yöntem için varsayılan seçenek bir Taskdöndürmek olmalıdır. Yalnızca performans analizi bunun yararlı olduğunu kanıtlarsa, yerine bir ValueTask kullanılmalıdır Task. özelliği, Task.CompletedTask döndüren bir yöntemin zaman uyumlu ve başarılı bir şekilde tamamlandığı durumlarda başarıyla tamamlanmış bir Task singleton'ı geri vermek için kullanılmalıdır.
Note
ValueTask türünün kullanımı C# 7.0'dan itibaren desteklenir ve Visual Basic herhangi bir sürümü tarafından desteklenmez.
Note
Parametresiz oluşturucuyla veya söz dizimi (sıfır başlatılmış bir yapı) ile default(ValueTask) oluşturulan bir örnek, zaman uyumlu, başarıyla tamamlanmış bir işlemi temsil eder.
Oluşturucular
| Name | Description |
|---|---|
| ValueTask(IValueTaskSource, Int16) |
İşlemi temsil eden sağlanan ValueTask nesneyi kullanarak sınıfının yeni bir örneğini IValueTaskSource başlatır. |
| ValueTask(Task) |
İşlemi temsil eden sağlanan görevi kullanarak sınıfın yeni bir örneğini ValueTask başlatır. |
Özellikler
| Name | Description |
|---|---|
| CompletedTask |
Başarıyla tamamlanmış bir görevi alır. |
| IsCanceled |
Bu nesnenin iptal edilmiş bir işlemi temsil edip etmediğini gösteren bir değer alır. |
| IsCompleted |
Bu nesnenin tamamlanmış bir işlemi temsil edip etmediğini gösteren bir değer alır. |
| IsCompletedSuccessfully |
Bu nesnenin başarıyla tamamlanmış bir işlemi temsil edip etmediğini gösteren bir değer alır. |
| IsFaulted |
Bu nesnenin başarısız bir işlemi temsil edip etmediğini gösteren bir değer alır. |
Yöntemler
| Name | Description |
|---|---|
| AsTask() | |
| ConfigureAwait(Boolean) |
Bu değer için bir awaiter yapılandırılır. |
| Equals(Object) |
Belirtilen nesnenin geçerli ValueTask örneğe eşit olup olmadığını belirler. |
| Equals(ValueTask) |
Belirtilen ValueTask nesnenin geçerli ValueTask nesneye eşit olup olmadığını belirler. |
| FromCanceled(CancellationToken) |
Belirtilen iptal belirteciyle iptal nedeniyle tamamlanmış bir ValueTask oluşturur. |
| FromCanceled<TResult>(CancellationToken) |
Belirtilen iptal belirteciyle iptal nedeniyle tamamlanmış bir ValueTask<TResult> oluşturur. |
| FromException(Exception) |
Belirtilen özel durumla tamamlanmış bir ValueTask oluşturur. |
| FromException<TResult>(Exception) |
Belirtilen özel durumla tamamlanmış bir ValueTask<TResult> oluşturur. |
| FromResult<TResult>(TResult) |
Belirtilen sonuçla başarıyla tamamlanan bir ValueTask<TResult> oluşturur. |
| GetAwaiter() |
Bu değer için bir awaiter oluşturur. |
| GetHashCode() |
Bu örneğin karma kodunu döndürür. |
| Preserve() |
Gelecekte herhangi bir noktada kullanılabilecek bir ValueTask alır. |
İşleçler
| Name | Description |
|---|---|
| Equality(ValueTask, ValueTask) |
Eşitlik için iki ValueTask değeri karşılaştırır. |
| Inequality(ValueTask, ValueTask) |
İki ValueTask değerin eşit olup olmadığını belirler. |