JoinableTaskFactory.SwitchToMainThreadAsync Yöntem
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.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| SwitchToMainThreadAsync(CancellationToken) |
Hem kilitlenmeleri hem de yeniden giriş düzeyini azaltmak için devamlılıkları ana iş parçacığında yürütülen bir beklenebilir alır. |
| SwitchToMainThreadAsync(Boolean, CancellationToken) |
Hem kilitlenmeleri hem de yeniden giriş özelliğini azaltmak için bu örneğin başlatıldığı eşitleme bağlamında devamlılıkları yürütülen bir beklenebilir alır. |
SwitchToMainThreadAsync(CancellationToken)
Hem kilitlenmeleri hem de yeniden giriş düzeyini azaltmak için devamlılıkları ana iş parçacığında yürütülen bir beklenebilir alır.
public Microsoft.VisualStudio.Threading.JoinableTaskFactory.MainThreadAwaitable SwitchToMainThreadAsync(System.Threading.CancellationToken cancellationToken = default);
member this.SwitchToMainThreadAsync : System.Threading.CancellationToken -> Microsoft.VisualStudio.Threading.JoinableTaskFactory.MainThreadAwaitable
Public Function SwitchToMainThreadAsync (Optional cancellationToken As CancellationToken = Nothing) As JoinableTaskFactory.MainThreadAwaitable
Parametreler
- cancellationToken
- CancellationToken
İptali hemen bir iş parçacığı havuzu iş parçacığında devamlılığı zamanlayacak ve çağıran ana iş parçacığında olsa bile devamlılık oluşturmasına OperationCanceledExceptionneden olacak bir belirteç.
Döndürülenler
Beklenebilir.
Özel durumlar
Çağıran zaten ana iş parçacığında olsa bile iptal edilirse cancellationToken bekleyen arayanda geri oluşturulur.
Açıklamalar
private async Task SomeOperationAsync() {
// on the caller's thread.
await DoAsync();
// Now switch to a threadpool thread explicitly.
await TaskScheduler.Default;
// Now switch to the Main thread to talk to some STA object.
await this.JobContext.SwitchToMainThreadAsync();
STAService.DoSomething();
}
sahiplik JoinableTaskContext ile nullSynchronizationContextoluşturulduğunda, bu yöntemin hiçbir etkisi olmaz ve çağıran özgün iş parçacığında yürütmeye devam eder.
Şunlara uygulanır
SwitchToMainThreadAsync(Boolean, CancellationToken)
Hem kilitlenmeleri hem de yeniden giriş özelliğini azaltmak için bu örneğin başlatıldığı eşitleme bağlamında devamlılıkları yürütülen bir beklenebilir alır.
public Microsoft.VisualStudio.Threading.JoinableTaskFactory.MainThreadAwaitable SwitchToMainThreadAsync(bool alwaysYield, System.Threading.CancellationToken cancellationToken = default);
member this.SwitchToMainThreadAsync : bool * System.Threading.CancellationToken -> Microsoft.VisualStudio.Threading.JoinableTaskFactory.MainThreadAwaitable
Public Function SwitchToMainThreadAsync (alwaysYield As Boolean, Optional cancellationToken As CancellationToken = Nothing) As JoinableTaskFactory.MainThreadAwaitable
Parametreler
- alwaysYield
- Boolean
Ana iş parçacığında zaten yürütülüyor olsa bile çağıranın verilip verilmeyeceğini belirten bir değer.
- cancellationToken
- CancellationToken
İptali hemen bir iş parçacığı havuzu iş parçacığında devamlılığı zamanlayacak ve çağıran ana iş parçacığında olsa bile devamlılık oluşturmasına OperationCanceledExceptionneden olacak bir belirteç.
Döndürülenler
Beklenebilir.
Özel durumlar
Çağıran zaten ana iş parçacığında olsa bile iptal edilirse cancellationToken bekleyen arayanda geri oluşturulur.
Açıklamalar
private async Task SomeOperationAsync()
{
// This first part can be on the caller's thread, whatever that is.
DoSomething();
// Now switch to the Main thread to talk to some STA object.
// Supposing it is also important to *not* do this step on our caller's callstack,
// be sure we yield even if we're on the UI thread.
await this.JoinableTaskFactory.SwitchToMainThreadAsync(alwaysYield: true);
STAService.DoSomething();
}