Dispatcher Třída

Definice

Poskytuje služby pro správu fronty pracovních položek pro vlákno.

public ref class Dispatcher sealed
public sealed class Dispatcher
type Dispatcher = class
Public NotInheritable Class Dispatcher
Dědičnost
Dispatcher

Příklady

Následující příklad ukazuje, jak umístit operaci na Dispatcher. Úplný zdrojový kód tohoto příkladu najdete v tématu Jednovláknová aplikace s ukázkou výpočtu Long-Running.

Nejprve se vytvoří delegát, který nepřijímá žádné argumenty.

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

BeginInvoke(DispatcherPriority, Delegate) Dále se volá. Toto volání BeginInvoke(DispatcherPriority, Delegate) přebírá dva parametry: prioritu, která je nastavena na DispatcherPriority.Normal, a zpětné volání, které se předává prostřednictvím instance delegáta NextPrimeDelegate.

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

Poznámky

Udržuje Dispatcher prioritní frontu pracovních položek pro konkrétní vlákno.

Dispatcher Když se vytvoří ve vlákně, stane se jedinýmDispatcher, který lze přidružit ke vláknu, i když Dispatcher je vypnutý.

Pokud se pokusíte získat CurrentDispatcher aktuální vlákno a Dispatcher nepřidružuje se ke vláknu, Dispatcher vytvoří se. A Dispatcher se vytvoří také při vytváření DispatcherObjectsouboru . Pokud vytvoříte Dispatcher vlákno na pozadí, nezapomeňte před ukončením vlákna vypnout dispečer.

Pokud je vypnutý Dispatcher , nejde ho restartovat.

Ve WPF DispatcherObject je možné k němu přistupovat pouze v Dispatcher případě, že je přidružená. Například vlákno na pozadí nemůže aktualizovat obsah Button přidruženého k Dispatcher vláknu uživatelského rozhraní. Aby vlákno na pozadí získalo přístup k Content vlastnosti Button, vlákno na pozadí musí delegovat práci na přidruženou k Dispatcher vláknu uživatelského rozhraní. K tomu slouží buď Invoke BeginInvokenebo . Invoke je synchronní a BeginInvoke je asynchronní. Operace se přidá do fronty zadaného Dispatcher DispatcherPrioritysouboru .

Pokud BeginInvoke je volána u Dispatcher vypnutého stavu, je vlastnost stavu vrácené DispatcherOperation hodnoty nastavena na Aborted.

Všechny metody pro Dispatcher, s výjimkou , DisableProcessingjsou bez vláken.

Objekty odvozené z DispatcherObject spřažení vláken

Objekty odvozené z Freezable nich jsou při ukotvení bez vláken. Další informace najdete v tématu Přehled zamrznutelných objektů.

Vlastnosti

CurrentDispatcher

Dispatcher Získá pro vlákno aktuálně spuštěné a vytvoří novýDispatcher, pokud ještě není přidružen k vláknu.

HasShutdownFinished

Určuje, jestli Dispatcher se dokončilo vypnutí.

HasShutdownStarted

Určuje, jestli Dispatcher je vypnutý.

Hooks

Získá kolekci háků, které poskytují další informace o Dispatcherudálosti .

Thread

Získá vlákno, které je Dispatcher přidruženo.

Metody

BeginInvoke(Delegate, DispatcherPriority, Object[])

Spustí zadaný delegát asynchronně se zadanými argumenty v zadané prioritě ve vlákně, na které Dispatcher byl vytvořen.

BeginInvoke(Delegate, Object[])

Spustí zadaný delegát asynchronně se zadanými argumenty ve vlákně, na které Dispatcher byl vytvořen.

BeginInvoke(DispatcherPriority, Delegate)

Provede zadaný delegát asynchronně na zadané prioritě ve vlákně, ke které Dispatcher je přidružen.

BeginInvoke(DispatcherPriority, Delegate, Object)

Spustí zadaného delegáta asynchronně na zadanou prioritu a se zadaným argumentem ve vlákně, ke které Dispatcher je přidružen.

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

Spustí zadaný delegát asynchronně v zadané prioritě a se zadaným polem argumentů ve vlákně, ke které Dispatcher je přidružen.

BeginInvokeShutdown(DispatcherPriority)

Inicializuje vypnutí Dispatcher asynchronně.

CheckAccess()

Určuje, zda volající vlákno je vlákno přidružené k tomuto Dispatcher.

DisableProcessing()

Zakáže zpracování fronty Dispatcher .

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
ExitAllFrames()

Vyžaduje, aby všechny snímky ukončovaly, včetně vnořených snímků.

FromThread(Thread)

Dispatcher Získá pro zadané vlákno.

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
Invoke(Action)

Provede zadané Action synchronně ve vlákně, ke které Dispatcher je přidruženo.

Invoke(Action, DispatcherPriority)

Provede zadané Action synchronně na zadané prioritě ve vlákně, ke které Dispatcher je přidruženo.

Invoke(Action, DispatcherPriority, CancellationToken)

Provede zadané Action synchronně na zadané prioritě ve vlákně, ke které Dispatcher je přidruženo.

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Provede zadaný Action synchronně na zadané prioritě ve vlákně, ke které Dispatcher je přidružen.

Invoke(Delegate, DispatcherPriority, Object[])

Spustí zadaného delegáta na zadanou prioritu se zadanými argumenty synchronně ve vlákně, ke které Dispatcher je přidružen.

Invoke(Delegate, Object[])

Spustí zadaný delegát se zadanými argumenty synchronně na vlákně, ke které Dispatcher je přidružen.

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

Spustí zadaný delegát v určeném časovém rozsahu v zadané prioritě se zadanými argumenty synchronně ve vlákně, ke které Dispatcher je přidružen.

Invoke(Delegate, TimeSpan, Object[])

Spustí zadaného delegáta v určeném časovém rozsahu v zadané prioritě se zadanými argumenty synchronně ve vlákně, ke které Dispatcher je přidružen.

Invoke(DispatcherPriority, Delegate)

Provede zadaný delegát synchronně na zadané prioritě ve vlákně, ke kterému Dispatcher je přidružený.

Invoke(DispatcherPriority, Delegate, Object)

Provede zadaný delegát na zadané prioritě se zadaným argumentem synchronně ve vlákně, ke které Dispatcher je přidružen.

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

Spustí zadaný delegát na zadanou prioritu se zadanými argumenty synchronně ve vlákně, ke které Dispatcher je přidružen.

Invoke(DispatcherPriority, TimeSpan, Delegate)

Spustí zadaný delegát synchronně v zadané prioritě a se zadanou hodnotou časového limitu ve vlákně, které Dispatcher bylo vytvořeno.

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

Spustí zadaný delegát v zadané prioritě se zadaným argumentem synchronně ve vlákně, ke které Dispatcher je přidružen.

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

Spustí zadaný delegát na zadanou prioritu se zadanými argumenty synchronně ve vlákně, ke které Dispatcher je přidružen.

Invoke<TResult>(Func<TResult>)

Provede zadaný Func<TResult> synchronně ve vlákně, ke které Dispatcher je přidružen.

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

Provede zadaný Func<TResult> synchronně na zadané prioritě ve vlákně, ke které Dispatcher je přidružen.

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

Provede zadaný Func<TResult> synchronně na zadané prioritě ve vlákně, ke které Dispatcher je přidružen.

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

Provede zadaný Func<TResult> synchronně na zadané prioritě ve vlákně, ke které Dispatcher je přidružen.

InvokeAsync(Action)

Provede zadaný Action asynchronně ve vlákně, ke které Dispatcher je přidružen.

InvokeAsync(Action, DispatcherPriority)

Provede zadané Action asynchronně v zadané prioritě ve vlákně, ke které Dispatcher je přidružen.

InvokeAsync(Action, DispatcherPriority, CancellationToken)

Provede zadané Action asynchronně v zadané prioritě ve vlákně, ke které Dispatcher je přidružen.

InvokeAsync<TResult>(Func<TResult>)

Provede zadaný Func<TResult> asynchronně ve vlákně, ke které Dispatcher je přidružen.

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

Provede zadané Func<TResult> asynchronně v zadané prioritě ve vlákně, ke které Dispatcher je přidružen.

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

Provede zadané Func<TResult> asynchronně v zadané prioritě ve vlákně, ke které Dispatcher je přidružen.

InvokeShutdown()

Zahájí proces Dispatcher vypnutí synchronně.

MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
PushFrame(DispatcherFrame)

Zadá smyčku execute.

Run()

Nasdílí hlavní spouštěcí rámec do fronty událostí objektu Dispatcher.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
ValidatePriority(DispatcherPriority, String)

Určuje, zda je zadaná DispatcherPriority priorita platná.

VerifyAccess()

Určuje, zda má volající vlákno přístup k tomuto Dispatcher.

Yield()

Vytvoří očekávaný objekt, který asynchronně vrací řízení zpět aktuálnímu dispečeru a poskytuje příležitost dispečeru zpracovat další události.

Yield(DispatcherPriority)

Vytvoří očekávaný objekt, který asynchronně vrací řízení zpět aktuálnímu dispečeru a poskytuje příležitost dispečeru zpracovat další události. Práce, která nastane, když se ovládací prvek vrátí do kódu čekající na výsledek této metody je naplánován se zadanou prioritou.

událost

ShutdownFinished

Nastane, Dispatcher když se dokončení vypne.

ShutdownStarted

Nastane, když Dispatcher se začne vypnout.

UnhandledException

Nastane, když dojde k výjimce vlákna a nezachytí se během provádění delegáta prostřednictvím Invoke nebo BeginInvoke.

UnhandledExceptionFilter

Nastane, když dojde k výjimce vlákna, která se vyvolá a nezačne během provádění delegáta prostřednictvím Invoke fáze filtru nebo BeginInvoke když je ve fázi filtru.

Metody rozšíření

BeginInvoke(Dispatcher, Action)

Provede zadaný delegát asynchronně s normální prioritou ve vlákně, na které byl zadaný Dispatcher vytvořen.

BeginInvoke(Dispatcher, Action, DispatcherPriority)

Spustí zadaný delegát asynchronně se zadanou prioritou ve vlákně, na které byl zadaný Dispatcher vytvořen.

Invoke(Dispatcher, Action)

Spustí zadaný delegát synchronně s normální prioritou ve vlákně, na které byl zadaný Dispatcher vytvořen.

Invoke(Dispatcher, Action, TimeSpan)

Spustí zadaný delegát synchronně ve vlákně, na které byl zadaný Dispatcher , a zastaví provádění po zadaném časovém limitu.

Invoke(Dispatcher, Action, TimeSpan, DispatcherPriority)

Spustí zadaného delegáta synchronně se zadanou prioritou ve vlákně, na které byl zadaný Dispatcher parametr vytvořen, a zastaví provádění po zadaném časovém limitu.

Invoke(Dispatcher, Action, DispatcherPriority)

Provede zadaný delegát synchronně se zadanou prioritou ve vlákně, na které byl zadaný Dispatcher vytvořen.

Platí pro

Viz také