Aracılığıyla paylaş


TplExtensions.NoThrowAwaitable Yöntem

Tanım

Aşırı Yüklemeler

NoThrowAwaitable(Task, Boolean)

Kaynak görev hata verse veya iptal edilse bile, belirtilen görev için hiçbir zaman atılamayacak bir beklenebilir döndürür.

NoThrowAwaitable(ValueTask, Boolean)

Kaynak görev hata verse veya iptal edilse bile, belirtilen görev için hiçbir zaman atılamayacak bir beklenebilir döndürür.

NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean)

Kaynak görev hata verse veya iptal edilse bile, belirtilen görev için hiçbir zaman atılamayacak bir beklenebilir döndürür.

NoThrowAwaitable(Task, Boolean)

Kaynak görev hata verse veya iptal edilse bile, belirtilen görev için hiçbir zaman atılamayacak bir beklenebilir döndürür.

public static Microsoft.VisualStudio.Threading.TplExtensions.NoThrowTaskAwaitable NoThrowAwaitable(this System.Threading.Tasks.Task task, bool captureContext = true);
static member NoThrowAwaitable : System.Threading.Tasks.Task * bool -> Microsoft.VisualStudio.Threading.TplExtensions.NoThrowTaskAwaitable
<Extension()>
Public Function NoThrowAwaitable (task As Task, Optional captureContext As Boolean = true) As TplExtensions.NoThrowTaskAwaitable

Parametreler

task
Task

Tamamlanması beklenen döndürülebilir değerinin tamamlanmasının sinyalini vermesi gereken görev.

captureContext
Boolean

devamlılık true olarak ayarlanırsa çağıranın bağlamında zamanlanır; false sürekliliği her zaman iş parçacığı havuzu üzerinde yürütmek için.

Döndürülenler

Beklenilebilir bir şey.

Şunlara uygulanır

NoThrowAwaitable(ValueTask, Boolean)

Kaynak görev hata verse veya iptal edilse bile, belirtilen görev için hiçbir zaman atılamayacak bir beklenebilir döndürür.

public static Microsoft.VisualStudio.Threading.TplExtensions.NoThrowValueTaskAwaitable NoThrowAwaitable(this System.Threading.Tasks.ValueTask task, bool captureContext = true);
static member NoThrowAwaitable : System.Threading.Tasks.ValueTask * bool -> Microsoft.VisualStudio.Threading.TplExtensions.NoThrowValueTaskAwaitable
<Extension()>
Public Function NoThrowAwaitable (task As ValueTask, Optional captureContext As Boolean = true) As TplExtensions.NoThrowValueTaskAwaitable

Parametreler

task
ValueTask

Tamamlanması beklenen döndürülebilir değerinin tamamlanmasının sinyalini vermesi gereken görev.

captureContext
Boolean

devamlılık true olarak ayarlanırsa çağıranın bağlamında zamanlanır; false sürekliliği her zaman iş parçacığı havuzu üzerinde yürütmek için.

Döndürülenler

Beklenilebilir bir şey.

Şunlara uygulanır

NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean)

Kaynak görev hata verse veya iptal edilse bile, belirtilen görev için hiçbir zaman atılamayacak bir beklenebilir döndürür.

public static Microsoft.VisualStudio.Threading.TplExtensions.NoThrowValueTaskAwaitable<TResult> NoThrowAwaitable<TResult>(this System.Threading.Tasks.ValueTask<TResult> task, bool captureContext = true);
static member NoThrowAwaitable : System.Threading.Tasks.ValueTask<'Result> * bool -> Microsoft.VisualStudio.Threading.TplExtensions.NoThrowValueTaskAwaitable<'Result>
<Extension()>
Public Function NoThrowAwaitable(Of TResult) (task As ValueTask(Of TResult), Optional captureContext As Boolean = true) As TplExtensions.NoThrowValueTaskAwaitable(Of TResult)

Tür Parametreleri

TResult

Sonuç türü.

Parametreler

task
ValueTask<TResult>

Tamamlanması beklenen döndürülebilir değerinin tamamlanmasının sinyalini vermesi gereken görev.

captureContext
Boolean

devamlılık true olarak ayarlanırsa çağıranın bağlamında zamanlanır; false sürekliliği her zaman iş parçacığı havuzu üzerinde yürütmek için.

Döndürülenler

Beklenilebilir bir şey.

Açıklamalar

Bu yöntem tarafından döndürülen awaitable, başarıyla tamamlanan ValueTask<TResult>bir sonucunun sonucuna erişim sağlamaz. Oluşturmadan beklemek ve sonuçta elde edilen değeri kullanmak için aşağıdaki desen kullanılabilir:

var methodValueTask = MethodAsync().Preserve();
await methodValueTask.NoThrowAwaitable(true);
if (methodValueTask.IsCompletedSuccessfully)
{
  var result = methodValueTask.Result;
}
else
{
  var exception = methodValueTask.AsTask().Exception.InnerException;
}

Şunlara uygulanır