Dil

JoinableTaskFactory.SwitchToMainThreadAsync Yöntem

Tanım

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();
}

Şunlara uygulanır