Dispatcher Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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. |