ThreadHelper Sınıf
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.
Genel Dağıtıcı sağlama, uygulamanın ana iş parçacığında bir yöntemin çağrıldığından emin olun. Ana iş parçacığının kolay bir şekilde tanımlanması için geçerli uygulamanın Dispatcher 'ı kullanıyoruz. Bu, uygulamanın örneğinin başlatılması gereken anlamına gelir. Şu anda, WindowManager tarafından başlatılır. Ancak, bu Işlemler RPC dostu olduklarından, DispatcherOperation kullanmıyoruz. Örneğin, UI iş parçacığı bir RPC çağrısının ortasındaysa ve Kullanıcı arabirimi iş parçacığında kodu çalıştırdığımızda, DispatcherOperations aracılığıyla almaz. Bunun nedeni, Kullanıcı arabirimi iş parçacığına bir ileti göndererek DispatcherOperations 'ın başlatıldığı ve UI iş parçacığının bu iletiyi yönetmesi gerekir. UI iş parçacığı bir RPC çağrısı yapıyor ise, bu iletiler kuyruktan kaldırılmaz. Standart OLE ileti filtresi sıradan yalnızca sınırlı bir ileti kümesini işler ve Visual Studio ileti filtresi çoğu diğerlerini yoksayar. UIThreadInvokerPrivate hizmeti aracılığıyla işlem, Kullanıcı arabirimi iş parçacığında bir COM çağrısı haline gelir. Aynı mantıksal çağrının bir parçasıysa bu işleme ileti filtreimiz izin verilir. ileti filtresi bunu "iç içe arama" olarak görür ve reddedemeyebilir.
public ref class ThreadHelper abstract
[Windows::Foundation::Metadata::WebHostHidden]
public ref class ThreadHelper abstract
[Windows::Foundation::Metadata::WebHostHidden]
class ThreadHelper abstract
public abstract class ThreadHelper
type ThreadHelper = class
Public MustInherit Class ThreadHelper
- Devralma
-
ThreadHelper
Oluşturucular
| ThreadHelper() |
Yeni bir örneğini başlatır ThreadHelper . |
Özellikler
| Generic |
Genel bir alır ThreadHelper . |
| JoinableTaskContext |
Visual Studio için Singleton JoinableTaskContext örneğini alır. |
| JoinableTaskFactory |
Visual Studio için joinable görev fabrikasını alır. |
Yöntemler
| BeginInvoke(Action) |
Kullanıcı arabirimi iş parçacığında yürütme işlemini zaman uyumsuz olarak zamanlayın. |
| BeginInvoke(DispatcherPriority, Action) |
Kullanıcı arabirimi iş parçacığında yürütme işlemini zaman uyumsuz olarak zamanlayın. |
| CheckAccess() |
Çağrının Kullanıcı arabirimi iş parçacığında yapılmakta olup olmadığını belirler. |
| GetInvocationWrapper() |
Türetilmiş sınıfların çağrılan yöntemi sarmalaması için bir atılabilir nesnesi uygulamak üzere GetInvocationWrapper metodunu uygulaması gerekir. Bu null olabilir. |
| InvokeWithRpcAsync(Action, Func<Boolean>, Boolean) |
RPC çağrısını Yöntem gibi eylemi çağırma, Microsoft.VisualStudio.Shell.ThreadHelper.Invoke(System.Action) ancak arka plan iş parçacığı içinde yapar.
Arka plan iş parçacığında olduğundan, RPC çağrısının sunulduğundan beri engel olmaz. RPC çağrısı başarısız olursa, |
| ThrowIfNotOnUIThread(String) |
Çağrının Kullanıcı arabirimi iş parçacığında yapılmakta olup olmadığını belirler ve DEĞILSE COMException (RPC_E_WRONG_THREAD) oluşturur. |
| ThrowIfOnUIThread(String) |
Çağrının Kullanıcı arabirimi iş parçacığında yapılmakta olup olmadığını belirler ve varsa COMException (RPC_E_WRONG_THREAD) oluşturur. |