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 ile Tek İş Parçacıklı 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. bu çağrısı BeginInvoke(DispatcherPriority, Delegate) 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ğuna sahiptir.

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

Geçerli iş parçacığı için öğesini CurrentDispatcher almaya çalışırsanız ve bir Dispatcher iş parçacığıyla ilişkilendirilmemişse, bir Dispatcher oluşturulur. Ayrıca Dispatcher , 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 Content Buttoniçin, arka plan iş parçacığının ui iş parçacığıyla ilişkili çalışma için 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.

üzerinde , dışında DisableProcessingtüm yöntemleri Dispatcherserbest iş parçacıklı.

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

'den Freezable türetilen nesneler dondurulduklarında serbest iş parçacıklı olarak oluşturulur. Daha fazla bilgi için bkz . Freezable Nesnelerine Genel Bakış.

Özellikler

CurrentDispatcher

Dispatcher Şu anda 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 iş parçacığı 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

BeginInvoke(Delegate, DispatcherPriority, Object[])

Belirtilen temsilciyi, oluşturulduğu iş parçacığında Dispatcher belirtilen önceliğe göre belirtilen bağımsız değişkenlerle 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)

Belirtilen temsilciyi, ilişkili olduğu iş parçacığında Dispatcher belirtilen önceliğe göre 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, Object, Object[])

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

BeginInvokeShutdown(DispatcherPriority)

Zaman uyumsuz olarak kapatılmasını 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çevelerin çıkmasını istemektedir.

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()

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

(Devralındığı yer: Object)
Invoke(Action)

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

Invoke(Action, DispatcherPriority)

Belirtilen Action değeri, 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 değeri, 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, TimeSpan)

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

Invoke(Delegate, DispatcherPriority, Object[])

Belirtilen temsilciyi 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, Object[])

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

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

Belirtilen zaman aralığı içinde belirtilen temsilciyi 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 zaman aralığı içinde belirtilen temsilciyi 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)

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

Invoke(DispatcherPriority, Delegate, Object)

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

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

Belirtilen temsilciyi 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, 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(DispatcherPriority, TimeSpan, Delegate, Object)

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

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

Belirtilen temsilciyi 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<TResult>(Func<TResult>)

Belirtilen Func<TResult> işlemi ilişkili iş parçacığında Dispatcher 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>, 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, 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.

InvokeAsync(Action)

Belirtilen Action zaman uyumsuz olarak ilişkili iş parçacığında 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, DispatcherPriority, CancellationToken)

Belirtilen Action 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.

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>, DispatcherPriority, CancellationToken)

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

InvokeShutdown()

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

MemberwiseClone()

Geçerli Objectöğesinin sığ 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 dizeyi 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 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 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 öncelik ile zamanlanır.

Ekinlikler

ShutdownFinished

Sona erdiğinde Dispatcher kapanır.

ShutdownStarted

Dispatcher kapanmaya 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ı

BeginInvoke(Dispatcher, Action)

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

BeginInvoke(Dispatcher, Action, DispatcherPriority)

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

Invoke(Dispatcher, Action)

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

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, TimeSpan, DispatcherPriority)

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

Invoke(Dispatcher, Action, DispatcherPriority)

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

Şunlara uygulanır

Ayrıca bkz.