Dispatcher Osztály

Definíció

Szolgáltatásokat nyújt egy szál munkaelem-üzenetsorának kezeléséhez.

public ref class Dispatcher sealed
public sealed class Dispatcher
type Dispatcher = class
Public NotInheritable Class Dispatcher
Öröklődés
Dispatcher

Példák

Az alábbi példa bemutatja, hogyan helyezhet el egy műveletet egy Dispatcher. A példa teljes forráskódját lásdSingle-Threaded alkalmazás Long-Running számítási mintával.

Először létrejön egy meghatalmazott, amely nem fogad el argumentumokat.

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

A következőt BeginInvoke(DispatcherPriority, Delegate) meghívjuk. Ez a BeginInvoke(DispatcherPriority, Delegate) hívás két paramétert vesz fel: a prioritást, amely az értékre DispatcherPriority.Normalvan állítva, és a visszahívást, amelyet a meghatalmazott egy példányán keresztül ad NextPrimeDelegateát.

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

Megjegyzések

A Dispatcher rendszer egy adott szálhoz rangsorolja a munkaelemek várólistáját.

Amikor létrehoz egy Dispatcher szálat, az lesz az egyetlen Dispatcher , amely társítható a szálhoz, még akkor is, ha az Dispatcher le van állítva.

Ha megkísérli lekérni az CurrentDispatcher aktuális szálat, és Dispatcher nincs társítva a szálhoz, létrejön egy Dispatcher . Az A Dispatcher is létrejön, amikor létrehoz egy DispatcherObject. Ha háttérszálon hoz létre, Dispatcher a szálból való kilépés előtt mindenképpen állítsa le a diszpécsert.

Ha egy Dispatcher le van állítva, az nem indítható újra.

A WPF DispatcherObject csak a társított Dispatcher érheti el. Egy háttérszál például nem tudja frissíteni a felhasználói felületen lévő szálhoz Button társított tartalom tartalmátDispatcher. Ahhoz, hogy a háttérszál hozzáférjen a ContentButtontulajdonságához, a háttérszálnak delegálnia kell a munkát a Dispatcher felhasználói felületi szálhoz társítottaknak. Ezt a rendszer a következővel hajtja végre: vagy InvokeBeginInvoke. Invoke szinkron és BeginInvoke aszinkron. A művelet hozzá lesz adva a megadott DispatcherüzenetsorhozDispatcherPriority.

Ha BeginInvoke leállított állapotúra Dispatcher van meghívva, a visszaadott DispatcherOperation állapottulajdonság értéke a következő.Aborted

Az összes metódus Dispatcher– a kivételével – DisableProcessingszabadon szálazott.

A szál affinitásából DispatcherObject származó objektumok.

A származtatott Freezable objektumok fagyasztáskor szabadon szálazhatók. További információ: Fagyasztható objektumok áttekintése.

Tulajdonságok

Name Description
CurrentDispatcher

Lekéri a Dispatcher folyamatban lévő szálat, és létrehoz egy újat Dispatcher , ha még nincs társítva a szálhoz.

HasShutdownFinished

Meghatározza, hogy a Dispatcher leállítás befejeződött-e.

HasShutdownStarted

Meghatározza, hogy a Dispatcher rendszer leáll-e.

Hooks

Lekéri a horgok gyűjteményét, amelyek további eseményadatokat nyújtanak a Dispatcher.

Thread

Lekéri a társított szálat Dispatcher .

Metódusok

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

A megadott delegáltat aszinkron módon hajtja végre a megadott argumentumokkal, a megadott prioritáson, azon a szálon, amelyen a Dispatcher létrehozott.

BeginInvoke(Delegate, Object[])

A megadott meghatalmazottat aszinkron módon hajtja végre a megadott argumentumokkal azon a szálon, amelyen a Dispatcher létrehozott.

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

A megadott delegáltat aszinkron módon hajtja végre a megadott prioritáson, és a megadott argumentumtömböt azon a szálon Dispatcher , amelyhez társítva van.

BeginInvoke(DispatcherPriority, Delegate, Object)

A megadott meghatalmazottat aszinkron módon hajtja végre a megadott prioritáson, és a megadott argumentummal azon a szálon Dispatcher , amelyhez társítva van.

BeginInvoke(DispatcherPriority, Delegate)

A megadott meghatalmazottat aszinkron módon hajtja végre a társított szál Dispatcher megadott prioritásán.

BeginInvokeShutdown(DispatcherPriority)

Aszinkron módon kezdeményezi az aszinkron Dispatcher leállítást.

CheckAccess()

Meghatározza, hogy a hívószál az ehhez társított szál-e Dispatcher.

DisableProcessing()

Letiltja az üzenetsor feldolgozását Dispatcher .

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
ExitAllFrames()

Azt kéri, hogy az összes keret lépjen ki, beleértve a beágyazott kereteket is.

FromThread(Thread)

Lekéri a Dispatcher megadott szálat.

GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Szinkron módon hajtja végre a megadott Action prioritást azon a szálon Dispatcher , amelyhez társítva van.

Invoke(Action, DispatcherPriority, CancellationToken)

Szinkron módon hajtja végre a megadott Action prioritást azon a szálon Dispatcher , amelyhez társítva van.

Invoke(Action, DispatcherPriority)

Szinkron módon hajtja végre a megadott Action prioritást azon a szálon Dispatcher , amelyhez társítva van.

Invoke(Action)

A megadott Action szinkronizálást hajtja végre azon a szálon Dispatcher , amelyhez társítva van.

Invoke(Delegate, DispatcherPriority, Object[])

A megadott meghatalmazottat a megadott prioritáson hajtja végre szinkron módon a megadott argumentumokkal azon a szálon Dispatcher , amelyhez társítva van.

Invoke(Delegate, Object[])

Szinkronizálva hajtja végre a megadott meghatalmazottat a megadott argumentumokkal azon a szálon Dispatcher , amelyhez társítva van.

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

A megadott meghatalmazottat a megadott prioritáson belül, a megadott argumentumokkal szinkron módon hajtja végre azon a szálon Dispatcher , amelyhez társítva van.

Invoke(Delegate, TimeSpan, Object[])

A megadott meghatalmazottat a megadott prioritáson belül, a megadott argumentumokkal szinkron módon hajtja végre azon a szálon Dispatcher , amelyhez társítva van.

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

A megadott meghatalmazottat a megadott prioritáson hajtja végre szinkron módon a megadott argumentumokkal azon a szálon Dispatcher , amelyhez társítva van.

Invoke(DispatcherPriority, Delegate, Object)

A megadott meghatalmazottat a megadott prioritáson hajtja végre szinkron módon a megadott argumentummal azon a szálon Dispatcher , amelyhez társítva van.

Invoke(DispatcherPriority, Delegate)

Szinkron módon hajtja végre a megadott meghatalmazottat a társított szál Dispatcher megadott prioritásán.

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

A megadott meghatalmazottat a megadott prioritáson hajtja végre szinkron módon a megadott argumentumokkal azon a szálon Dispatcher , amelyhez társítva van.

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

A megadott meghatalmazottat a megadott prioritáson hajtja végre szinkron módon a megadott argumentummal azon a szálon Dispatcher , amelyhez társítva van.

Invoke(DispatcherPriority, TimeSpan, Delegate)

Szinkronizálva hajtja végre a megadott meghatalmazottat a megadott prioritáson és a létrehozott szál Dispatcher megadott időtúllépési értékével.

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

Szinkron módon hajtja végre a megadott Func<TResult> prioritást azon a szálon Dispatcher , amelyhez társítva van.

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

Szinkron módon hajtja végre a megadott Func<TResult> prioritást azon a szálon Dispatcher , amelyhez társítva van.

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

Szinkron módon hajtja végre a megadott Func<TResult> prioritást azon a szálon Dispatcher , amelyhez társítva van.

Invoke<TResult>(Func<TResult>)

A megadott Func<TResult> szinkronizálást hajtja végre azon a szálon Dispatcher , amelyhez társítva van.

InvokeAsync(Action, DispatcherPriority, CancellationToken)

A megadott aszinkron módon hajtja végre a megadott Action prioritást azon a szálon Dispatcher , amelyhez társítva van.

InvokeAsync(Action, DispatcherPriority)

A megadott aszinkron módon hajtja végre a megadott Action prioritást azon a szálon Dispatcher , amelyhez társítva van.

InvokeAsync(Action)

A megadott aszinkron módon hajtja végre a megadott Action szálat, amelyhez Dispatcher társítva van.

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

A megadott aszinkron módon hajtja végre a megadott Func<TResult> prioritást azon a szálon Dispatcher , amelyhez társítva van.

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

A megadott aszinkron módon hajtja végre a megadott Func<TResult> prioritást azon a szálon Dispatcher , amelyhez társítva van.

InvokeAsync<TResult>(Func<TResult>)

A megadott aszinkron módon hajtja végre a megadott Func<TResult> szálat, amelyhez Dispatcher társítva van.

InvokeShutdown()

Szinkron módon kezdeményezi a Dispatcher leállítási folyamatot.

MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
PushFrame(DispatcherFrame)

Egy végrehajtási ciklust ad meg.

Run()

Leküldi a fő végrehajtási keretet a Dispatcher.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)
ValidatePriority(DispatcherPriority, String)

Meghatározza, hogy a megadott DispatcherPriority prioritás érvényes-e.

VerifyAccess()

Meghatározza, hogy a hívó szál hozzáfér-e ehhez Dispatcher.

Yield()

Létrehoz egy várható objektumot, amely aszinkron módon visszaadja az irányítást az aktuális diszpécsernek, és lehetőséget biztosít a kézbesítő számára más események feldolgozására.

Yield(DispatcherPriority)

Létrehoz egy várható objektumot, amely aszinkron módon visszaadja az irányítást az aktuális diszpécsernek, és lehetőséget biztosít a kézbesítő számára más események feldolgozására. Az a munka, amely akkor történik, amikor a vezérlő visszatér a metódus eredményére váró kódhoz, a megadott prioritással van ütemezve.

esemény

Name Description
ShutdownFinished

Akkor fordul elő, amikor a Dispatcher leállítás befejeződik.

ShutdownStarted

Akkor fordul elő, amikor a Dispatcher rendszer elkezd leállni.

UnhandledException

Ez akkor fordul elő, ha a meghatalmazott végrehajtása során egy szálkivételt ad Invoke ki vagy BeginInvokehajt végre.

UnhandledExceptionFilter

Akkor fordul elő, ha egy delegált végrehajtása során egy szálkivételt ad Invoke ki, vagy BeginInvoke amikor a szűrőszakaszban van.

Bővítő metódusok

Name Description
BeginInvoke(Dispatcher, Action, DispatcherPriority)

A megadott meghatalmazottat aszinkron módon hajtja végre a megadott prioritással azon a szálon, amelyen a megadott Dispatcher létre lett hozva.

BeginInvoke(Dispatcher, Action)

A megadott meghatalmazottat aszinkron módon hajtja végre normál prioritással azon a szálon, amelyen a megadott Dispatcher létre lett hozva.

Invoke(Dispatcher, Action, DispatcherPriority)

A megadott meghatalmazottat szinkron módon hajtja végre a megadott prioritással azon a szálon, amelyen a megadott Dispatcher létre lett hozva.

Invoke(Dispatcher, Action, TimeSpan, DispatcherPriority)

A megadott meghatalmazottat szinkron módon hajtja végre a megadott prioritással azon a szálon, amelyen a megadott Dispatcher létre lett hozva, és leállítja a végrehajtást a megadott időtúllépési időszak után.

Invoke(Dispatcher, Action, TimeSpan)

Szinkron módon hajtja végre a megadott meghatalmazottat azon a szálon, amelyen a megadott Dispatcher létre lett hozva, és leállítja a végrehajtást a megadott időtúllépési időszak után.

Invoke(Dispatcher, Action)

A megadott meghatalmazottat szinkron módon hajtja végre a normál prioritással azon a szálon, amelyen a megadott Dispatcher létre lett hozva.

A következőre érvényes:

Lásd még