JoinableTaskContextNode.SuppressRelevance Yöntem

Tanım

Döndürülen değer atılana kadar çağıranın ilişkilendirildiği JoinableTask 'ı gizleme.

public:
 Microsoft::VisualStudio::Threading::JoinableTaskContext::RevertRelevance SuppressRelevance();
public Microsoft.VisualStudio.Threading.JoinableTaskContext.RevertRelevance SuppressRelevance ();
member this.SuppressRelevance : unit -> Microsoft.VisualStudio.Threading.JoinableTaskContext.RevertRelevance
Public Function SuppressRelevance () As JoinableTaskContext.RevertRelevance

Döndürülenler

JoinableTaskContext.RevertRelevance

Varsa, çağıranın ilişkili JoinableTask içinde görünürlüğü geri yüklemek için atılırken bir değer.

Açıklamalar

Bazı durumlarda, zaman uyumsuz iş, çalıştırmak için sağlanan bir temsilci içinde devre dışı kalabilir, böylece iş, Run(Func<Task>) çağrı döndürülünceye ve Kullanıcı arabirimi iş parçacığı boşta kaldığında ana iş parçacığını yeniden girme ayrıcalıklarına sahip olmaz. Zaman uyumsuz çalışmanın ana iş parçacığını yeniden girmesine izin verilmesini engellemek için, bir using bloğunda zaman uyumsuz görevi çağıran kodu, ifade olarak Bu metoda bir çağrı ile sarın.

this.JoinableTaskContext.RunSynchronously(async delegate {
    using(this.JoinableTaskContext.SuppressRelevance()) {
        var asyncOperation = Task.Run(async delegate {
            // Some background work.
            await this.JoinableTaskContext.SwitchToMainThreadAsync();
            // Some Main thread work, that cannot begin until the outer RunSynchronously call has returned.
        });
    }

    // Because the asyncOperation is not related to this Main thread work (it was suppressed),
    // the following await *would* deadlock if it were uncommented.
    ////await asyncOperation;
});

Şunlara uygulanır