Dispatcher Sınıf

Tanım

İş parçacığı için iş öğeleri kuyruğunu yönetmek üzere hizmetler sağlar.Provides services for managing the queue of work items for a thread.

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

Örnekler

Aşağıdaki örnek, üzerine bir işlemin nasıl yerleştirileceğini gösterir Dispatcher .The following example shows how to place an operation onto a Dispatcher. Bu örneğin tam kaynak kodu için bkz. uzun süreli Hesaplama örneği Ile tek Iş parçacıklı uygulama.For the full source code of this example, see Single-Threaded Application with Long-Running Calculation Sample.

İlk olarak, hiçbir bağımsız değişkeni kabul eden bir temsilci oluşturulur.First, a delegate is created that accepts no arguments.

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

Sonra, BeginInvoke(DispatcherPriority, Delegate) çağırılır.Next, BeginInvoke(DispatcherPriority, Delegate) is called. Bu çağrı BeginInvoke(DispatcherPriority, Delegate) iki parametre alır: olarak ayarlanan öncelik, DispatcherPriority.Normal ve bir temsilcinin örneği aracılığıyla geçirilen geri çağırma NextPrimeDelegate .This call to BeginInvoke(DispatcherPriority, Delegate) takes two parameters: the priority, which is set to DispatcherPriority.Normal, and the callback, which is passed in through an instance of the delegate NextPrimeDelegate.

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 öncelikli bir kuyruğunu korur.The Dispatcher maintains a prioritized queue of work items for a specific thread.

Bir Dispatcher iş parçacığında oluşturulduğunda, Dispatcher kapatılmış olsa bile, iş parçacığı ile ilişkilendirilebilen tek olur Dispatcher .When a Dispatcher is created on a thread, it becomes the only Dispatcher that can be associated with the thread, even if the Dispatcher is shut down.

CurrentDispatcher' İ geçerli iş parçacığı için almaya çalışırsanız ve Dispatcher iş parçacığıyla ilişkili değilse, bir Dispatcher oluşturulur.If you attempt to get the CurrentDispatcher for the current thread and a Dispatcher is not associated with the thread, a Dispatcher will be created. Bir Dispatcher , oluştururken de oluşturulur DispatcherObject .A Dispatcher is also created when you create a DispatcherObject. Bir Dispatcher arka plan iş parçacığında oluşturursanız, iş parçacığından çıkmadan önce dağıtıcısı 'yı kapatmayı unutmayın.If you create a Dispatcher on a background thread, be sure to shut down the dispatcher before exiting the thread.

Bir Dispatcher kapalıysa, yeniden başlatılamaz.If a Dispatcher is shut down, it cannot be restarted.

WPF 'de DispatcherObject yalnızca Dispatcher ile ilişkili olan tarafından erişilebilir.In WPF, a DispatcherObject can only be accessed by the Dispatcher it is associated with. Örneğin, bir arka plan iş parçacığı Button , iş parçacığında ile ilişkili olan öğesinin içeriğini güncelleştiremez Dispatcher Kullanıcı arabirimiUI .For example, a background thread cannot update the contents of a Button that is associated with the Dispatcher on the Kullanıcı arabirimiUI thread. Arka plan iş parçacığının özelliğine erişmesi için, Content Button arka plan iş parçacığı iş Dispatcher parçacığı ile ilişkili olan işi temsil etmelidir Kullanıcı arabirimiUI .In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the Kullanıcı arabirimiUI thread. Bu, ya da kullanılarak gerçekleştirilir Invoke BeginInvoke .This is accomplished by using either Invoke or BeginInvoke. Invoke zaman uyumludur ve BeginInvoke zaman uyumsuzdur.Invoke is synchronous and BeginInvoke is asynchronous. İşlem, belirtilen ' ın kuyruğuna eklenir Dispatcher DispatcherPriority .The operation is added to the queue of the Dispatcher at the specified DispatcherPriority.

BeginInvoke Dispatcher , Kapatılmış olan bir üzerinde çağrılırsa, döndürülen durum özelliği DispatcherOperation olarak ayarlanır Aborted .If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

DispatcherÖzel durumu ile üzerindeki tüm yöntemler DisableProcessing ücretsiz iş parçacıklıdır.All of the methods on Dispatcher, with the exception of DisableProcessing, are free-threaded.

Öğesinden türetilen nesneler DispatcherObject iş parçacığı benzeşimine sahiptir.Objects that derive from DispatcherObject have thread affinity.

Öğesinden türetilen nesneler Freezable dondurulmuş olmaları durumunda serbest iş parçacıklıdır.Objects that derive from Freezable are free-threaded when they are frozen. Daha fazla bilgi için bkz. Freezable nesnelerine genel bakış.For more information, see Freezable Objects Overview.

Özellikler

CurrentDispatcher

DispatcherŞu anda yürütülmekte olan iş parçacığı için alır ve Dispatcher bir iş parçacığıyla zaten ilişkili değilse yeni bir oluşturur.Gets the Dispatcher for the thread currently executing and creates a new Dispatcher if one is not already associated with the thread.

HasShutdownFinished

' Dispatcher In kapatılmasını isteyip bitmediğini belirler.Determines whether the Dispatcher has finished shutting down.

HasShutdownStarted

' Dispatcher In kapanıp kapanmadığını belirler.Determines whether the Dispatcher is shutting down.

Hooks

Hakkında ek olay bilgileri sağlayan kancaları koleksiyonunu alır Dispatcher .Gets the collection of hooks that provide additional event information about the Dispatcher.

Thread

Bu ilişkili iş parçacığını alır Dispatcher .Gets the thread this Dispatcher is associated with.

Yöntemler

BeginInvoke(Delegate, DispatcherPriority, Object[])

Belirtilen temsilciyi belirtilen bağımsız değişkenlerle belirtilen şekilde, belirtilen iş parçacığında üzerinde zaman uyumsuz olarak yürütür Dispatcher .Executes the specified delegate asynchronously with the specified arguments, at the specified priority, on the thread that the Dispatcher was created on.

BeginInvoke(Delegate, Object[])

Belirtilen temsilciyi, üzerinde oluşturulduğu iş parçacığında belirtilen bağımsız değişkenlerle zaman uyumsuz olarak yürütür Dispatcher .Executes the specified delegate asynchronously with the specified arguments on the thread that the Dispatcher was created on.

BeginInvoke(DispatcherPriority, Delegate)

Belirtilen temsilciyi, ilişkili iş parçacığında belirtilen öncelikte zaman uyumsuz olarak yürütür Dispatcher .Executes the specified delegate asynchronously at the specified priority on the thread the Dispatcher is associated with.

BeginInvoke(DispatcherPriority, Delegate, Object)

Belirtilen temsilciyi belirtilen öncelikte ve belirtilen bağımsız değişkenle ilişkili olan iş parçacığında birlikte zaman uyumsuz olarak yürütür Dispatcher .Executes the specified delegate asynchronously at the specified priority and with the specified argument on the thread the Dispatcher is associated with.

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

Belirtilen temsilciyi, belirtilen öncelikte ve ilişkili iş parçacığında belirtilen bağımsız değişken dizisiyle birlikte zaman uyumsuz olarak yürütür Dispatcher .Executes the specified delegate asynchronously at the specified priority and with the specified array of arguments on the thread the Dispatcher is associated with.

BeginInvokeShutdown(DispatcherPriority)

Zaman uyumsuz olarak kapatılmasını başlatır Dispatcher .Initiates shutdown of the Dispatcher asynchronously.

CheckAccess()

Çağıran iş parçacığının bununla ilişkili iş parçacığı olup olmadığını belirler Dispatcher .Determines whether the calling thread is the thread associated with this Dispatcher.

DisableProcessing()

Kuyruğun işlenmesini devre dışı bırakır Dispatcher .Disables processing of the Dispatcher queue.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.Determines whether the specified object is equal to the current object.

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

İç içe yerleştirilmiş çerçeveler dahil tüm çerçevelerin çıkış istekleri.Requests that all frames exit, including nested frames.

FromThread(Thread)

DispatcherBelirtilen iş parçacığı için öğesini alır.Gets the Dispatcher for the specified thread.

GetHashCode()

Varsayılan karma işlevi olarak işlev görür.Serves as the default hash function.

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

TypeGeçerli örneği alır.Gets the Type of the current instance.

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

Actionİle ilişkili iş parçacığında belirtilen zaman uyumlu olarak yürütülür Dispatcher .Executes the specified Action synchronously on the thread the Dispatcher is associated with.

Invoke(Action, DispatcherPriority)

Belirtilen Action iş parçacığında belirtilen öncelik sırasına göre belirtilen zaman uyumlu olarak yürütülür Dispatcher .Executes the specified Action synchronously at the specified priority on the thread the Dispatcher is associated with.

Invoke(Action, DispatcherPriority, CancellationToken)

Belirtilen Action iş parçacığında belirtilen öncelik sırasına göre belirtilen zaman uyumlu olarak yürütülür Dispatcher .Executes the specified Action synchronously at the specified priority on the thread the Dispatcher is associated with.

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Belirtilen Action iş parçacığında belirtilen öncelik sırasına göre belirtilen zaman uyumlu olarak yürütülür Dispatcher .Executes the specified Action synchronously at the specified priority on the thread the Dispatcher is associated with.

Invoke(Delegate, DispatcherPriority, Object[])

Belirtilen temsilciyi, belirtilen bağımsız değişkenlerle ilişkili iş parçacığında zaman uyumlu olarak belirtilen önceliğe göre yürütür Dispatcher .Executes the specified delegate at the specified priority with the specified arguments synchronously on the thread the Dispatcher is associated with.

Invoke(Delegate, Object[])

Belirtilen bağımsız değişkenlerle ilişkilendirilen iş parçacığında belirtilen temsilciyi eşzamanlı olarak yürütür Dispatcher .Executes the specified delegate with the specified arguments synchronously on the thread the Dispatcher is associated with.

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

Belirtilen zaman aralığı içinde belirtilen zaman aralığında belirtilen temsilciyi belirtilen bağımsız değişkenlerle, ilişkili iş parçacığında zaman uyumlu olarak yürütür Dispatcher .Executes the specified delegate within the designated time span at the specified priority with the specified arguments synchronously on the thread the Dispatcher is associated with.

Invoke(Delegate, TimeSpan, Object[])

Belirtilen zaman aralığı içinde belirtilen zaman aralığında belirtilen temsilciyi belirtilen bağımsız değişkenlerle, ilişkili iş parçacığında zaman uyumlu olarak yürütür Dispatcher .Executes the specified delegate within the designated time span at the specified priority with the specified arguments synchronously on the thread the Dispatcher is associated with.

Invoke(DispatcherPriority, Delegate)

Belirtilen temsilciyi, ilişkili iş parçacığında belirtilen öncelikte zaman uyumlu olarak yürütür Dispatcher .Executes the specified delegate synchronously at the specified priority on the thread that the Dispatcher is associated with.

Invoke(DispatcherPriority, Delegate, Object)

Belirtilen bağımsız değişkeni ile ilişkili iş parçacığında zaman uyumlu olarak belirtilen bir öncelikle belirtilen temsilciyi yürütür Dispatcher .Executes the specified delegate at the specified priority with the specified argument synchronously on the thread the Dispatcher is associated with.

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

Belirtilen temsilciyi, belirtilen bağımsız değişkenlerle ilişkili iş parçacığında zaman uyumlu olarak belirtilen önceliğe göre yürütür Dispatcher .Executes the specified delegate at the specified priority with the specified arguments synchronously on the thread the Dispatcher is associated with.

Invoke(DispatcherPriority, TimeSpan, Delegate)

Belirtilen temsilciyi belirtilen öncelikte ve oluşturulan iş parçacığında belirtilen zaman aşımı değeri ile zaman uyumlu olarak yürütür Dispatcher .Executes the specified delegate synchronously at the specified priority and with the specified time-out value on the thread the Dispatcher was created.

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

Belirtilen bağımsız değişkeni ile ilişkili iş parçacığında zaman uyumlu olarak belirtilen bir öncelikle belirtilen temsilciyi yürütür Dispatcher .Executes the specified delegate at the specified priority with the specified argument synchronously on the thread the Dispatcher is associated with.

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

Belirtilen temsilciyi, belirtilen bağımsız değişkenlerle ilişkili iş parçacığında zaman uyumlu olarak belirtilen önceliğe göre yürütür Dispatcher .Executes the specified delegate at the specified priority with the specified arguments synchronously on the thread the Dispatcher is associated with.

Invoke<TResult>(Func<TResult>)

Func<TResult>İle ilişkili iş parçacığında belirtilen zaman uyumlu olarak yürütülür Dispatcher .Executes the specified Func<TResult> synchronously on the thread the Dispatcher is associated with.

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

Belirtilen Func<TResult> iş parçacığında belirtilen öncelik sırasına göre belirtilen zaman uyumlu olarak yürütülür Dispatcher .Executes the specified Func<TResult> synchronously at the specified priority on the thread the Dispatcher is associated with.

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

Belirtilen Func<TResult> iş parçacığında belirtilen öncelik sırasına göre belirtilen zaman uyumlu olarak yürütülür Dispatcher .Executes the specified Func<TResult> synchronously at the specified priority on the thread the Dispatcher is associated with.

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

Belirtilen Func<TResult> iş parçacığında belirtilen öncelik sırasına göre belirtilen zaman uyumlu olarak yürütülür Dispatcher .Executes the specified Func<TResult> synchronously at the specified priority on the thread the Dispatcher is associated with.

InvokeAsync(Action)

, Action İlişkili olduğu iş parçacığında belirtilen zaman uyumsuz olarak yürütülür Dispatcher .Executes the specified Action asynchronously on the thread the Dispatcher is associated with.

InvokeAsync(Action, DispatcherPriority)

Belirtilen Action iş parçacığında belirtilen öncelikte belirtilen önceliğe göre belirtilen zaman uyumsuz olarak yürütür Dispatcher .Executes the specified Action asynchronously at the specified priority on the thread the Dispatcher is associated with.

InvokeAsync(Action, DispatcherPriority, CancellationToken)

Belirtilen Action iş parçacığında belirtilen öncelikte belirtilen önceliğe göre belirtilen zaman uyumsuz olarak yürütür Dispatcher .Executes the specified Action asynchronously at the specified priority on the thread the Dispatcher is associated with.

InvokeAsync<TResult>(Func<TResult>)

, Func<TResult> İlişkili olduğu iş parçacığında belirtilen zaman uyumsuz olarak yürütülür Dispatcher .Executes the specified Func<TResult> asynchronously on the thread the Dispatcher is associated with.

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

Belirtilen Func<TResult> iş parçacığında belirtilen öncelikte belirtilen önceliğe göre belirtilen zaman uyumsuz olarak yürütür Dispatcher .Executes the specified Func<TResult> asynchronously at the specified priority on the thread the Dispatcher is associated with.

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

Belirtilen Func<TResult> iş parçacığında belirtilen öncelikte belirtilen önceliğe göre belirtilen zaman uyumsuz olarak yürütür Dispatcher .Executes the specified Func<TResult> asynchronously at the specified priority on the thread the Dispatcher is associated with.

InvokeShutdown()

Zaman uyumlu olarak kapalı işlemini başlatır Dispatcher .Initiates the shutdown process of the Dispatcher synchronously.

MemberwiseClone()

Geçerli bir basit kopyasını oluşturur Object .Creates a shallow copy of the current Object.

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

Bir Execute döngüsü girer.Enters an execute loop.

Run()

Ana yürütme çerçevesini öğesinin olay kuyruğuna iter Dispatcher .Pushes the main execution frame on the event queue of the Dispatcher.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.Returns a string that represents the current object.

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

Belirtilen DispatcherPriority geçerli bir öncelik olup olmadığını belirler.Determines whether the specified DispatcherPriority is a valid priority.

VerifyAccess()

Çağıran iş parçacığının bu öğesine erişip erişemeyeceğini belirler Dispatcher .Determines whether the calling thread has access to this Dispatcher.

Yield()

Denetimi geçerli dağıtıcıya geri doğru şekilde veren bir awasever nesnesi oluşturur ve dağıtıcının diğer olayları işlemesi için bir fırsat sağlar.Creates an awaitable object that asynchronously yields control back to the current dispatcher and provides an opportunity for the dispatcher to process other events.

Yield(DispatcherPriority)

Denetimi geçerli dağıtıcıya geri doğru şekilde veren bir awasever nesnesi oluşturur ve dağıtıcının diğer olayları işlemesi için bir fırsat sağlar.Creates an awaitable object that asynchronously yields control back to the current dispatcher and provides an opportunity for the dispatcher to process other events. Denetim, bu yöntemin sonucunu bekleyen koda döndüğünde oluşan iş belirtilen önceliğe göre zamanlanır.The work that occurs when control returns to the code awaiting the result of this method is scheduled with the specified priority.

Ekinlikler

ShutdownFinished

, Dispatcher Kapatma tamamlandığında gerçekleşir.Occurs when the Dispatcher finishes shutting down.

ShutdownStarted

DispatcherKapanmaya başladığında gerçekleşir.Occurs when the Dispatcher begins to shut down.

UnhandledException

Bir iş parçacığı özel durumu oluşturulduğunda ve veya şeklinde bir temsilcinin yürütülmesi sırasında yakalanırken oluşur Invoke BeginInvoke .Occurs when a thread exception is thrown and uncaught during execution of a delegate by way of Invoke or BeginInvoke.

UnhandledExceptionFilter

Bir iş parçacığı özel durumu oluşturulduğunda ve bir temsilcinin Invoke BeginInvoke , filtre aşamasında veya ne zaman olarak yürütülmesi sırasında yakaladığı zaman oluşur.Occurs when a thread exception is thrown and uncaught during execution of a delegate by way of Invoke or BeginInvoke when in the filter stage.

Uzantı Metotları

BeginInvoke(Dispatcher, Action)

Belirtilen temsilciyi, belirtilen iş parçacığında normal öncelik ile zaman uyumsuz olarak yürütür Dispatcher .Executes the specified delegate asynchronously with normal priority on the thread that the specified Dispatcher was created on.

BeginInvoke(Dispatcher, Action, DispatcherPriority)

Belirtilen temsilciyi, belirtilen iş parçacığında belirtilen önceliğe göre zaman uyumsuz olarak yürütür Dispatcher .Executes the specified delegate asynchronously with the specified priority on the thread that the specified Dispatcher was created on.

Invoke(Dispatcher, Action)

Belirtilen temsilciyi, belirtilen iş parçacığında normal önceliğe göre eşzamanlı olarak yürütür Dispatcher .Executes the specified delegate synchronously with normal priority on the thread that the specified Dispatcher was created on.

Invoke(Dispatcher, Action, TimeSpan)

Belirtilen temsilciyi belirtilen iş parçacığında zaman uyumlu olarak yürütür Dispatcher ve belirtilen zaman aşımı süresinden sonra yürütmeyi durduruyor.Executes the specified delegate synchronously on the thread that the specified Dispatcher was created on, and stops execution after the specified time-out period.

Invoke(Dispatcher, Action, TimeSpan, DispatcherPriority)

Belirtilen temsilciyi belirtilen bir iş parçacığında belirtilen önceliğe göre eşzamanlı olarak yürütür Dispatcher ve belirtilen zaman aşımı süresinden sonra yürütmeyi durduruyor.Executes the specified delegate synchronously with the specified priority on the thread that the specified Dispatcher was created on, and stops execution after the specified time-out period.

Invoke(Dispatcher, Action, DispatcherPriority)

Belirtilen temsilciyi, belirtilen iş parçacığında belirtilen önceliğe göre eşzamanlı olarak yürütür Dispatcher .Executes the specified delegate synchronously with the specified priority on the thread that the specified Dispatcher was created on.

Şunlara uygulanır

Ayrıca bkz.