JoinableTaskContextNode.SuppressRelevance 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.
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
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;
});