JoinableTaskFactory.DisableProcessing 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.
Ortam JoinableTaskiçin zaman uyumlu beklemeler sırasında filtrelenmiş ileti pompalarının çalışmasını engeller.
public Microsoft.VisualStudio.Threading.JoinableTaskFactory.ProcessingDisabledOperation DisableProcessing();
member this.DisableProcessing : unit -> Microsoft.VisualStudio.Threading.JoinableTaskFactory.ProcessingDisabledOperation
Public Function DisableProcessing () As JoinableTaskFactory.ProcessingDisabledOperation
Döndürülenler
Zaman uyumlu bekleme iletisi pompalarını gizleme gereksinimi sona erdiğinde atılabilir bir değer. Alternatif olarak, geri kalanının JoinableTask işlemenin devre dışı bırakılması amaçlanıyorsa atılabilir.
Özel durumlar
bir bağlamının JoinableTaskdışında çağrıldığında oluşturulur.
Örnekler
Bu yöntemin basit ve yaygın kullanımı aşağıdadır:
Bunun nasıl kullanılabileceğini gösteren daha fazla örnek aşağıda verilmiştir:
Açıklamalar
içinde bir verim awaitJoinableTasksırasında, yalnızca ilgili çalışmayı sağlayan dahili yöntem dışında, bu yöntemin çağrılıp çağrılmadığına bakılmaksızın hiçbir ileti pompası çalışmaz. Kullanıcı kodu temsilci içinde veya ana iş parçacığının JoinableTask zaman uyumlu bir bloğuna ihtiyaç duyan çağrıları içinde çalıştığında (örneğin, zaman uyumlu G/Ç veya kilit çekişmesi), bu bekleme genellikle üzerinde Currentçağrılarak Wait(IntPtr[], Boolean, Int32) uygulanır. Bu yöntemin varsayılan uygulaması belirli kesintilere (rpc çağrıları e.g. COM) izin verir ve bu da bazı durumlarda kilitlenmeleri önleyemeyebilir .
Bu yöntemin çağrılması, varsayılan uygulamasını Wait(IntPtr[], Boolean, Int32) etkin ve denetiminde Currentolan bu tür kesintilere JoinableTask izin vermeyecek bir uygulamayla değiştirir. Bu yöntem birden çok kez çağrılana kadar bu etki, tüm DisableProcessing() çağrıların dönüş değerleri atılana kadar (herhangi bir sırada) hedefte JoinableTask kalır. Etki yalnızca doğrudan JoinableTaskiçin geçerlidir. Hiçbir çocuğunu veya ebeveynini etkilemez.
İşlemi devre dışı bırakmanın Windows olmayan işletim sistemleri üzerinde hiçbir etkisi yoktur.
Sonuçta elde edilen değerin atılması varsayılan davranışa geri döner. Amaç, yürütmenin geri kalanında işlemeyi devre dışı bırakmaksa çağıranların JoinableTaskbu değeri atması gerekmez.