Dispatcher Klass

Definition

Tillhandahåller tjänster för att hantera kön med arbetsobjekt för en tråd.

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

Exempel

I följande exempel visas hur du placerar en åtgärd på en Dispatcher. Den fullständiga källkoden för det här exemplet finns iSingle-Threaded program med Long-Running beräkningsexempel.

Först skapas ett ombud som inte accepterar några argument.

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

BeginInvoke(DispatcherPriority, Delegate) Därefter anropas. Det här anropet tar BeginInvoke(DispatcherPriority, Delegate) två parametrar: prioriteten, som är inställd på DispatcherPriority.Normal, och återanropet, som skickas via en instans av ombudet NextPrimeDelegate.

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

Kommentarer

Dispatcher Underhåller en prioriterad kö med arbetsobjekt för en specifik tråd.

När en Dispatcher skapas i en tråd blir den den enda Dispatcher som kan associeras med tråden, även om den Dispatcher stängs av.

Om du försöker hämta CurrentDispatcher för den aktuella tråden och en Dispatcher inte är associerad med tråden skapas en Dispatcher . En Dispatcher skapas också när du skapar en DispatcherObject. Om du skapar en Dispatcher i en bakgrundstråd måste du stänga av avsändaren innan du avslutar tråden.

Om en Dispatcher stängs av kan den inte startas om.

I WPF kan en DispatcherObject endast nås av den Dispatcher den är associerad med. En bakgrundstråd kan till exempel inte uppdatera innehållet i en Button som är associerad med Dispatcher i användargränssnittstråden. För att bakgrundstråden ska få åtkomst Content till egenskapen Buttonför måste bakgrundstråden delegera arbetet till den Dispatcher associerade med användargränssnittstråden. Detta görs med hjälp av antingen Invoke eller BeginInvoke. Invoke är synkron och BeginInvoke asynkron. Åtgärden läggs till i kön för Dispatcher den angivna DispatcherPriority.

Om BeginInvoke anropas på en Dispatcher som har stängts av är statusegenskapen för den returnerade DispatcherOperation inställd Abortedpå .

Alla metoder på Dispatcher, med undantag för DisableProcessing, är fritrådade.

Objekt som härleds från DispatcherObject har trådtillhörighet.

Objekt som härleds från Freezable är fritrådade när de är låsta. Mer information finns i Översikt över frysta objekt.

Egenskaper

Name Description
CurrentDispatcher

Dispatcher Hämtar för den tråd som körs för närvarande och skapar en ny Dispatcher om en inte redan är associerad med tråden.

HasShutdownFinished

Avgör om avslutad Dispatcher avstängning har slutförts.

HasShutdownStarted

Avgör om stängs Dispatcher av.

Hooks

Hämtar samlingen av krokar som ger ytterligare händelseinformation om Dispatcher.

Thread

Hämtar den tråd som detta Dispatcher är associerat med.

Metoder

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

Kör det angivna ombudet asynkront med de angivna argumenten, med den angivna prioriteten, på den tråd som Dispatcher skapades på.

BeginInvoke(Delegate, Object[])

Kör det angivna ombudet asynkront med de angivna argumenten i tråden Dispatcher som skapades på.

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

Kör det angivna ombudet asynkront med den angivna prioriteten och med den angivna argumentmatrisen i tråden som Dispatcher är associerad med.

BeginInvoke(DispatcherPriority, Delegate, Object)

Kör det angivna ombudet asynkront med den angivna prioriteten och med det angivna argumentet i tråden som Dispatcher är associerat med.

BeginInvoke(DispatcherPriority, Delegate)

Kör det angivna ombudet asynkront med den angivna prioriteten i tråden som Dispatcher är associerad med.

BeginInvokeShutdown(DispatcherPriority)

Initierar avstängning av Dispatcher asynkront.

CheckAccess()

Avgör om den anropande tråden är den tråd som är associerad med den här Dispatcher.

DisableProcessing()

Inaktiverar bearbetning av Dispatcher kön.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
ExitAllFrames()

Begär att alla bildrutor avslutas, inklusive kapslade ramar.

FromThread(Thread)

Dispatcher Hämtar för den angivna tråden.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Kör den angivna Action synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med.

Invoke(Action, DispatcherPriority, CancellationToken)

Kör den angivna Action synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med.

Invoke(Action, DispatcherPriority)

Kör den angivna Action synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med.

Invoke(Action)

Kör den angivna Action synkront på tråden som Dispatcher är associerad med.

Invoke(Delegate, DispatcherPriority, Object[])

Kör det angivna ombudet med den angivna prioriteten med de angivna argumenten synkront i tråden som Dispatcher är associerad med.

Invoke(Delegate, Object[])

Kör det angivna ombudet med de angivna argumenten synkront på den tråd som Dispatcher är associerad med.

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

Kör det angivna ombudet inom det angivna tidsintervallet vid den angivna prioriteten med de angivna argumenten synkront på den tråd som Dispatcher är associerad med.

Invoke(Delegate, TimeSpan, Object[])

Kör det angivna ombudet inom det angivna tidsintervallet vid den angivna prioriteten med de angivna argumenten synkront på den tråd som Dispatcher är associerad med.

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

Kör det angivna ombudet med den angivna prioriteten med de angivna argumenten synkront i tråden som Dispatcher är associerad med.

Invoke(DispatcherPriority, Delegate, Object)

Kör det angivna ombudet med den angivna prioriteten med det angivna argumentet synkront på den tråd som Dispatcher är associerad med.

Invoke(DispatcherPriority, Delegate)

Kör det angivna ombudet synkront med den angivna prioriteten i tråden Dispatcher som är associerad med.

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

Kör det angivna ombudet med den angivna prioriteten med de angivna argumenten synkront i tråden som Dispatcher är associerad med.

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

Kör det angivna ombudet med den angivna prioriteten med det angivna argumentet synkront på den tråd som Dispatcher är associerad med.

Invoke(DispatcherPriority, TimeSpan, Delegate)

Kör det angivna ombudet synkront med den angivna prioriteten och med det angivna tidsgränsvärdet i tråden som Dispatcher skapades.

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

Kör den angivna Func<TResult> synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med.

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

Kör den angivna Func<TResult> synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med.

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

Kör den angivna Func<TResult> synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med.

Invoke<TResult>(Func<TResult>)

Kör den angivna Func<TResult> synkront på tråden som Dispatcher är associerad med.

InvokeAsync(Action, DispatcherPriority, CancellationToken)

Kör den angivna Action asynkront vid den angivna prioriteten i tråden som Dispatcher är associerad med.

InvokeAsync(Action, DispatcherPriority)

Kör den angivna Action asynkront vid den angivna prioriteten i tråden som Dispatcher är associerad med.

InvokeAsync(Action)

Kör den angivna Action asynkront på tråden som Dispatcher är associerad med.

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

Kör den angivna Func<TResult> asynkront vid den angivna prioriteten i tråden som Dispatcher är associerad med.

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

Kör den angivna Func<TResult> asynkront vid den angivna prioriteten i tråden som Dispatcher är associerad med.

InvokeAsync<TResult>(Func<TResult>)

Kör den angivna Func<TResult> asynkront på tråden som Dispatcher är associerad med.

InvokeShutdown()

Initierar avstängningsprocessen Dispatcher för synkront.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
PushFrame(DispatcherFrame)

Anger en körningsloop.

Run()

Push-överför huvudkörningsramen i händelsekön för Dispatcher.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
ValidatePriority(DispatcherPriority, String)

Avgör om den angivna DispatcherPriority är en giltig prioritet.

VerifyAccess()

Avgör om den anropande tråden har åtkomst till den här Dispatcher.

Yield()

Skapar ett väntande objekt som asynkront ger kontroll tillbaka till den aktuella avsändaren och ger avsändaren möjlighet att bearbeta andra händelser.

Yield(DispatcherPriority)

Skapar ett väntande objekt som asynkront ger kontroll tillbaka till den aktuella avsändaren och ger avsändaren möjlighet att bearbeta andra händelser. Det arbete som inträffar när kontrollen återgår till koden som väntar på resultatet av den här metoden schemaläggs med den angivna prioriteten.

Händelser

Name Description
ShutdownFinished

Inträffar när avstängningen Dispatcher är klar.

ShutdownStarted

Inträffar när börjar Dispatcher stängas av.

UnhandledException

Inträffar när ett trådundantag genereras och inte ändras under körningen av ett ombud via Invoke eller BeginInvoke.

UnhandledExceptionFilter

Inträffar när ett trådundantag genereras och inte ändras under körningen av ett ombud via Invoke eller BeginInvoke när det är i filterfasen.

Tilläggsmetoder

Name Description
BeginInvoke(Dispatcher, Action, DispatcherPriority)

Kör det angivna ombudet asynkront med den angivna prioriteten i tråden som den angivna Dispatcher skapades på.

BeginInvoke(Dispatcher, Action)

Kör det angivna ombudet asynkront med normal prioritet i tråden som den angivna Dispatcher skapades på.

Invoke(Dispatcher, Action, DispatcherPriority)

Kör det angivna ombudet synkront med den angivna prioriteten i tråden som den angivna Dispatcher skapades på.

Invoke(Dispatcher, Action, TimeSpan, DispatcherPriority)

Kör det angivna ombudet synkront med den angivna prioriteten i tråden som den angivna Dispatcher skapades på och stoppar körningen efter den angivna tidsgränsen.

Invoke(Dispatcher, Action, TimeSpan)

Kör det angivna ombudet synkront på den tråd som den angivna Dispatcher skapades på och stoppar körningen efter den angivna tidsgränsen.

Invoke(Dispatcher, Action)

Kör det angivna ombudet synkront med normal prioritet på den tråd som den angivna Dispatcher skapades på.

Gäller för

Se även