Aracılığıyla paylaş


Dispatcher Sınıf

Tanım

İş parçacığı için iş öğesi kuyruğunun yönetilmesine yönelik hizmetler sağlar.

public ref class Dispatcher sealed
public sealed class Dispatcher
type Dispatcher = class
Public NotInheritable Class Dispatcher
Devralma
Dispatcher

Örnekler

Aşağıdaki örnek, bir işlemi üzerine nasıl yerleştireceklerini Dispatchergösterir. Bu örneğin tam kaynak kodu için bkz. Long-Running Hesaplama Örneği ileSingle-Threaded Uygulama.

İlk olarak, bağımsız değişken kabul eden bir temsilci oluşturulur.

public delegate void NextPrimeDelegate();
Public Delegate Sub NextPrimeDelegate()

Ardından, BeginInvoke(DispatcherPriority, Delegate) çağrılır. BeginInvoke(DispatcherPriority, Delegate) çağrısı iki parametre alır: olarak ayarlanan DispatcherPriority.Normalöncelik ve temsilcinin NextPrimeDelegatebir örneği aracılığıyla geçirilen geri çağırma.

startStopButton.Dispatcher.BeginInvoke(
    DispatcherPriority.Normal,
    new NextPrimeDelegate(CheckNextNumber));
startStopButton.Dispatcher.BeginInvoke(DispatcherPriority.Normal, New NextPrimeDelegate(AddressOf CheckNextNumber))

Açıklamalar

, Dispatcher belirli bir iş parçacığı için iş öğelerinin önceliklendirilmiş kuyruğunun bakımını sağlar.

bir Dispatcher iş parçacığında oluşturulduğunda, iş parçacığı kapatılsa Dispatcher bile iş parçacığıyla ilişkilendirilebilen tek Dispatcher iş parçacığı olur.

Geçerli iş parçacığı için öğesini almaya CurrentDispatcher çalışırsanız ve Dispatcher iş parçacığıyla ilişkilendirilmemişse, bir Dispatcher oluşturulur. Ayrıca Dispatcher , bir oluşturduğunuzda da oluşturulur DispatcherObject. Arka plan iş parçacığında bir Dispatcher oluşturursanız, iş parçacığından çıkmadan önce dağıtıcıyı kapattığınıza emin olun.

Dispatcher kapatılırsa yeniden başlatılamaz.

WPF'de, bir DispatcherObject öğesine yalnızca ilişkili olduğu tarafından Dispatcher erişilebilir. Örneğin, bir arka plan iş parçacığı, kullanıcı arabirimi iş parçacığında ile Dispatcher ilişkili bir Button içeriğini güncelleştiremez. Arka plan iş parçacığının özelliğine erişebilmesi ContentButtoniçin arka plan iş parçacığının ui iş parçacığıyla ilişkilendirilmiş iş parçacığına Dispatcher temsilci seçmesi gerekir. Bu, veya BeginInvokekullanılarak Invoke gerçekleştirilir. Invoke zaman uyumludur ve BeginInvoke zaman uyumsuzdur. İşlem, belirtilen DispatcherPrioritykonumundaki kuyruğuna Dispatcher eklenir.

Kapatılmış bir Dispatcher üzerinde çağrılırsaBeginInvoke, döndürülen DispatcherOperation öğesinin durum özelliği olarak Abortedayarlanır.

üzerindeki yöntemlerin Dispatchertümü, dışında DisableProcessing, serbest iş parçacıklıdır.

'den DispatcherObject türetilen nesnelerin iş parçacığı benzitesi vardır.

türetilen Freezable nesneler, dondurulduklarında serbest iş parçacıklı olarak oluşturulur. Daha fazla bilgi için bkz . Freezable Objects Overview.

Özellikler

Name Description
CurrentDispatcher

Dispatcher Yürütülmekte olan iş parçacığı için öğesini alır ve iş parçacığıyla henüz ilişkilendirilmemişse yeni Dispatcher bir oluşturur.

HasShutdownFinished

kapatma işleminin Dispatcher tamamlanıp tamamlanmadığını belirler.

HasShutdownStarted

öğesinin Dispatcher kapatılıp kapatılmayacağını belirler.

Hooks

hakkında Dispatcherek olay bilgileri sağlayan kanca koleksiyonunu alır.

Thread

İlişkili Dispatcher olduğu iş parçacığını alır.

Yöntemler

Name Description
BeginInvoke(Delegate, DispatcherPriority, Object[])

Belirtilen temsilciyi, oluşturulduğu iş parçacığında Dispatcher belirtilen bağımsız değişkenlerle, belirtilen önceliğe göre zaman uyumsuz olarak yürütür.

BeginInvoke(Delegate, Object[])

Belirtilen temsilciyi, oluşturulduğu iş parçacığında Dispatcher belirtilen bağımsız değişkenlerle zaman uyumsuz olarak yürütür.

BeginInvoke(DispatcherPriority, Delegate, Object, Object[])

Belirtilen temsilciyi belirtilen önceliğe ve ilişkili iş parçacığında Dispatcher belirtilen bağımsız değişken dizisiyle zaman uyumsuz olarak yürütür.

BeginInvoke(DispatcherPriority, Delegate, Object)

Belirtilen temsilciyi belirtilen önceliğe ve ilişkili iş parçacığında Dispatcher belirtilen bağımsız değişkenle zaman uyumsuz olarak yürütür.

BeginInvoke(DispatcherPriority, Delegate)

Belirtilen temsilciyi ilişkili olduğu iş parçacığında Dispatcher belirtilen önceliğe göre zaman uyumsuz olarak yürütür.

BeginInvokeShutdown(DispatcherPriority)

Zaman uyumsuz olarak kapatmayı Dispatcher başlatır.

CheckAccess()

Çağıran iş parçacığının bu Dispatcherile ilişkili iş parçacığı olup olmadığını belirler.

DisableProcessing()

Kuyruğun işlenmesini Dispatcher devre dışı bırakır.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
ExitAllFrames()

İç içe çerçeveler de dahil olmak üzere tüm çerçevelerden çıkma isteğinde bulunur.

FromThread(Thread)

Belirtilen iş parçacığı için öğesini Dispatcher alır.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Belirtilen Action işlemi, ilişkili olduğu iş parçacığında Dispatcher belirtilen önceliğe göre zaman uyumlu olarak yürütür.

Invoke(Action, DispatcherPriority, CancellationToken)

Belirtilen Action işlemi, ilişkili olduğu iş parçacığında Dispatcher belirtilen önceliğe göre zaman uyumlu olarak yürütür.

Invoke(Action, DispatcherPriority)

Belirtilen Action işlemi, ilişkili olduğu iş parçacığında Dispatcher belirtilen önceliğe göre zaman uyumlu olarak yürütür.

Invoke(Action)

Belirtilen Action işlemi ilişkili iş parçacığında Dispatcher zaman uyumlu olarak yürütür.

Invoke(Delegate, DispatcherPriority, Object[])

Belirtilen temsilciyi, ilişkili olduğu iş parçacığında Dispatcher belirtilen bağımsız değişkenlerle belirtilen önceliğe göre zaman uyumlu olarak yürütür.

Invoke(Delegate, Object[])

Belirtilen temsilciyi, ilişkili olduğu iş parçacığında Dispatcher belirtilen bağımsız değişkenlerle zaman uyumlu olarak yürütür.

Invoke(Delegate, TimeSpan, DispatcherPriority, Object[])

Belirtilen temsilciyi belirtilen zaman aralığı içinde belirtilen önceliğe göre, ilişkili iş parçacığında Dispatcher belirtilen bağımsız değişkenlerle zaman uyumlu olarak yürütür.

Invoke(Delegate, TimeSpan, Object[])

Belirtilen temsilciyi belirtilen zaman aralığı içinde belirtilen önceliğe göre, ilişkili iş parçacığında Dispatcher belirtilen bağımsız değişkenlerle zaman uyumlu olarak yürütür.

Invoke(DispatcherPriority, Delegate, Object, Object[])

Belirtilen temsilciyi, ilişkili olduğu iş parçacığında Dispatcher belirtilen bağımsız değişkenlerle belirtilen önceliğe göre zaman uyumlu olarak yürütür.

Invoke(DispatcherPriority, Delegate, Object)

Belirtilen temsilciyi belirtilen önceliğe göre, ilişkili olduğu iş parçacığında Dispatcher belirtilen bağımsız değişkenle zaman uyumlu olarak yürütür.

Invoke(DispatcherPriority, Delegate)

Belirtilen temsilciyi, ilişkili olduğu iş parçacığında Dispatcher belirtilen önceliğe göre zaman uyumlu olarak yürütür.

Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])

Belirtilen temsilciyi, ilişkili olduğu iş parçacığında Dispatcher belirtilen bağımsız değişkenlerle belirtilen önceliğe göre zaman uyumlu olarak yürütür.

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

Belirtilen temsilciyi belirtilen önceliğe göre, ilişkili olduğu iş parçacığında Dispatcher belirtilen bağımsız değişkenle zaman uyumlu olarak yürütür.

Invoke(DispatcherPriority, TimeSpan, Delegate)

Belirtilen temsilciyi belirtilen önceliğe ve oluşturulan iş parçacığında Dispatcher belirtilen zaman aşımı değeriyle zaman uyumlu olarak yürütür.

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)

Belirtilen Func<TResult> işlemi, ilişkili olduğu iş parçacığında Dispatcher belirtilen önceliğe göre zaman uyumlu olarak yürütür.

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)

Belirtilen Func<TResult> işlemi, ilişkili olduğu iş parçacığında Dispatcher belirtilen önceliğe göre zaman uyumlu olarak yürütür.

Invoke<TResult>(Func<TResult>, DispatcherPriority)

Belirtilen Func<TResult> işlemi, ilişkili olduğu iş parçacığında Dispatcher belirtilen önceliğe göre zaman uyumlu olarak yürütür.

Invoke<TResult>(Func<TResult>)

Belirtilen Func<TResult> işlemi ilişkili iş parçacığında Dispatcher zaman uyumlu olarak yürütür.

InvokeAsync(Action, DispatcherPriority, CancellationToken)

Belirtilen Action zaman uyumsuz olarak ilişkili iş parçacığında belirtilen önceliğe göre Dispatcher yürütür.

InvokeAsync(Action, DispatcherPriority)

Belirtilen Action zaman uyumsuz olarak ilişkili iş parçacığında belirtilen önceliğe göre Dispatcher yürütür.

InvokeAsync(Action)

Belirtilen Action zaman uyumsuz olarak ilişkili iş parçacığında Dispatcher yürütür.

InvokeAsync<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)

Belirtilen Func<TResult> zaman uyumsuz olarak ilişkili iş parçacığında belirtilen önceliğe göre Dispatcher yürütür.

InvokeAsync<TResult>(Func<TResult>, DispatcherPriority)

Belirtilen Func<TResult> zaman uyumsuz olarak ilişkili iş parçacığında belirtilen önceliğe göre Dispatcher yürütür.

InvokeAsync<TResult>(Func<TResult>)

Belirtilen Func<TResult> zaman uyumsuz olarak ilişkili iş parçacığında Dispatcher yürütür.

InvokeShutdown()

Zaman uyumlu olarak kapatma işlemini Dispatcher başlatır.

MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
PushFrame(DispatcherFrame)

Yürütme döngüsü girer.

Run()

ana yürütme çerçevesini öğesinin olay kuyruğuna gönderir Dispatcher.

ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)
ValidatePriority(DispatcherPriority, String)

Belirtilenin DispatcherPriority geçerli bir öncelik olup olmadığını belirler.

VerifyAccess()

Çağıran iş parçacığının bu Dispatcheröğesine erişimi olup olmadığını belirler.

Yield()

Denetimi zaman uyumsuz olarak geçerli dağıtıcıya geri döndüren ve dağıtıcının diğer olayları işlemesi için bir fırsat sağlayan beklenebilir bir nesne oluşturur.

Yield(DispatcherPriority)

Denetimi zaman uyumsuz olarak geçerli dağıtıcıya geri döndüren ve dağıtıcının diğer olayları işlemesi için bir fırsat sağlayan beklenebilir bir nesne oluşturur. Denetim bu yöntemin sonucunu bekleyen koda döndüğünde oluşan çalışma, belirtilen öncelikle zamanlanır.

Ekinlikler

Name Description
ShutdownFinished

Dispatcher Kapatma işlemi tamamlandığında gerçekleşir.

ShutdownStarted

kapatılmaya Dispatcher başladığında gerçekleşir.

UnhandledException

veya BeginInvokeyoluyla Invoke bir temsilcinin yürütülmesi sırasında bir iş parçacığı özel durumu oluştuğunda ve yakalanmadığında gerçekleşir.

UnhandledExceptionFilter

Bir temsilcinin yürütülmesi sırasında veya filtre aşamasındayken bir Invoke iş parçacığı özel durumu oluştuğunda ve BeginInvoke yakalanmadığında gerçekleşir.

Uzantı Metotları

Name Description
BeginInvoke(Dispatcher, Action, DispatcherPriority)

Belirtilen temsilciyi, belirtilen temsilcinin oluşturulduğu iş parçacığında Dispatcher belirtilen öncelikle zaman uyumsuz olarak yürütür.

BeginInvoke(Dispatcher, Action)

Belirtilen temsilciyi, belirtilenin oluşturulduğu iş parçacığında Dispatcher normal önceliğe sahip zaman uyumsuz olarak yürütür.

Invoke(Dispatcher, Action, DispatcherPriority)

Belirtilen temsilciyi, belirtilen temsilcinin oluşturulduğu iş parçacığında Dispatcher belirtilen öncelikle zaman uyumlu olarak yürütür.

Invoke(Dispatcher, Action, TimeSpan, DispatcherPriority)

Belirtilen temsilciyi, belirtilen temsilcinin oluşturulduğu iş parçacığında Dispatcher belirtilen öncelikle zaman uyumlu olarak yürütür ve belirtilen zaman aşımı süresinden sonra yürütmeyi durdurur.

Invoke(Dispatcher, Action, TimeSpan)

Belirtilen temsilciyi, belirtilenin Dispatcher oluşturulduğu iş parçacığında zaman uyumlu olarak yürütür ve belirtilen zaman aşımı süresinden sonra yürütmeyi durdurur.

Invoke(Dispatcher, Action)

Belirtilen temsilciyi, belirtilenin oluşturulduğu iş parçacığında Dispatcher normal öncelikle zaman uyumlu olarak yürütür.

Şunlara uygulanır

Ayrıca bkz.