Dispatcher.Invoke Metoda

Definice

Spustí zadaného delegáta synchronně ve vlákně, ke které Dispatcher je přidružen.

Přetížení

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

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

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

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

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

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

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

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

Invoke(DispatcherPriority, TimeSpan, Delegate)

Spustí zadaného delegáta synchronně se zadanou prioritou a se zadanou hodnotou časového limitu ve vlákně Dispatcher byl vytvořen.

Invoke(DispatcherPriority, Delegate, Object)

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

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

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

Invoke(Delegate, TimeSpan, Object[])

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

Invoke(Action, DispatcherPriority, CancellationToken)

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

Invoke(DispatcherPriority, Delegate)

Spustí zadaného delegáta synchronně se zadanou prioritou ve vlákně, ke Dispatcher kterému je přidružen.

Invoke(Delegate, Object[])

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

Invoke(Action, DispatcherPriority)

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

Invoke(Action)

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

Invoke(Delegate, DispatcherPriority, Object[])

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

Invoke<TResult>(Func<TResult>)

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

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

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

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

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

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

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

Příklady

Následující příklad umístí delegáta na adresu Dispatcher pomocí NormalInvoke.

// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    // Place delegate on the Dispatcher.
    this.Dispatcher.Invoke(DispatcherPriority.Normal,
        new TimerDispatcherDelegate(TimerWorkItem));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
    ' Place delegate on the Dispatcher.
    Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub

Poznámky

Ve WPF může k ho objektu DispatcherObject přistupovat pouze vlákno, které vytvořilo objekt. Například vlákno na pozadí, které je odsunutí z hlavního vlákna uživatelského rozhraní nemůže aktualizovat obsah objektu Button , který byl vytvořen ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti Content objektu Button, musí vlákno na pozadí delegovat práci na vlákno přidružené k Dispatcher vláknu uživatelského rozhraní. K tomu slouží buď Invoke , nebo BeginInvoke. Invoke je synchronní a BeginInvoke asynchronní. Operace se přidá do fronty Dispatcher událostí v zadaném DispatcherPriority.

Invoke je synchronní operace; proto se ovládací prvek nevrátí do volajícího objektu, dokud se zpětné volání nevrátí.

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

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

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object, ParamArray args As Object()) As Object

Parametry

priority
DispatcherPriority

Priorita vzhledem k ostatním čekajícím operacím ve frontě Dispatcher událostí, se kterou je vyvolána zadaná metoda.

timeout
TimeSpan

Maximální doba čekání na spuštění operace. Jakmile se operace spustí, dokončí se před vrácením této metody. Chcete-li určit nekonečné čekání, použijte hodnotu -1. Při volání stejného vlákna je jakákoli jiná záporná hodnota převedena na -1, což vede k nekonečnému čekání. Při volání napříč vlákny vyvolá jakákoli jiná záporná hodnota hodnotu ArgumentOutOfRangeException.

method
Delegate

Delegát metody, která přijímá více argumentů, které jsou vloženy do Dispatcher fronty událostí.

arg
Object

Objekt, který se má předat jako argument zadané metodě.

args
Object[]

Pole objektů, které se mají předat jako argumenty zadané metodě.

Návraty

Vrácená hodnota z delegáta, který je vyvolán, nebo null pokud delegát nemá žádnou návratnou hodnotu.

Atributy

Výjimky

priority se rovná hodnotě Inactive.

method je null.

timeout je záporné číslo jiné než -1 a tato metoda byla vyvolána napříč vlákny.

Poznámky

arg může být null , pokud argument není potřeba.

Ve WPF může k ho objektu DispatcherObject přistupovat pouze vlákno, které vytvořilo objekt. Například vlákno na pozadí, které je odsunutí z hlavního vlákna uživatelského rozhraní nemůže aktualizovat obsah objektu Button , který byl vytvořen ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti Content objektu Button, musí vlákno na pozadí delegovat práci na vlákno přidružené k Dispatcher vláknu uživatelského rozhraní. K tomu slouží buď Invoke , nebo BeginInvoke. Invoke je synchronní a BeginInvoke asynchronní. Operace se přidá do fronty Dispatcher událostí v zadaném DispatcherPriority.

Invoke je synchronní operace; proto se ovládací prvek nevrátí do volajícího objektu, dokud se zpětné volání nevrátí.

Platí pro

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

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

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object) As Object

Parametry

priority
DispatcherPriority

Priorita vzhledem k ostatním čekajícím operacím ve frontě Dispatcher událostí, se kterou je vyvolána zadaná metoda.

timeout
TimeSpan

Maximální doba čekání na spuštění operace. Jakmile se operace spustí, dokončí se před vrácením této metody. Chcete-li určit nekonečné čekání, použijte hodnotu -1. Při volání stejného vlákna je jakákoli jiná záporná hodnota převedena na -1, což vede k nekonečnému čekání. Při volání napříč vlákny vyvolá jakákoli jiná záporná hodnota hodnotu ArgumentOutOfRangeException.

method
Delegate

Delegát metody, která přijímá více argumentů, které jsou vloženy do Dispatcher fronty událostí.

arg
Object

Objekt, který se má předat jako argument dané metodě. K tomu může dojít null v případě, že nejsou potřeba žádné argumenty.

Návraty

Vrácená hodnota z delegáta, který je vyvolán, nebo null pokud delegát nemá žádnou návratnou hodnotu.

Atributy

Výjimky

priority se rovná hodnotě Inactive.

priority není platná priorita.

method je null.

Poznámky

arg může být null , pokud argument není potřeba.

Ve WPF může k ho objektu DispatcherObject přistupovat pouze vlákno, které vytvořilo objekt. Například vlákno na pozadí, které je odsunutí z hlavního vlákna uživatelského rozhraní nemůže aktualizovat obsah objektu Button , který byl vytvořen ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti Content objektu Button, musí vlákno na pozadí delegovat práci na vlákno přidružené k Dispatcher vláknu uživatelského rozhraní. K tomu slouží buď Invoke , nebo BeginInvoke. Invoke je synchronní a BeginInvoke asynchronní. Operace se přidá do fronty Dispatcher událostí v zadaném DispatcherPriority.

Invoke je synchronní operace; proto se ovládací prvek nevrátí do volajícího objektu, dokud se zpětné volání nevrátí.

Platí pro

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

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

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object, ParamArray args As Object()) As Object

Parametry

priority
DispatcherPriority

Priorita vzhledem k ostatním čekajícím operacím ve frontě Dispatcher událostí, se kterou je vyvolána zadaná metoda.

method
Delegate

Delegát metody, která přijímá více argumentů, které jsou vloženy do Dispatcher fronty událostí.

arg
Object

Objekt, který se má předat jako argument dané metodě.

args
Object[]

Pole objektů, které se předávají jako argumenty dané metodě.

Návraty

Vrácená hodnota z delegáta, který je vyvolán, nebo null pokud delegát nemá žádnou návratnou hodnotu.

Atributy

Výjimky

priority se rovná hodnotě Inactive.

priority není platná priorita.

method je null.

Poznámky

arg může být null , pokud argument není potřeba.

Ve WPF může k ho objektu DispatcherObject přistupovat pouze vlákno, které vytvořilo objekt. Například vlákno na pozadí, které je odsunutí z hlavního vlákna uživatelského rozhraní nemůže aktualizovat obsah objektu Button , který byl vytvořen ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti Content objektu Button, musí vlákno na pozadí delegovat práci na vlákno přidružené k Dispatcher vláknu uživatelského rozhraní. K tomu slouží buď Invoke , nebo BeginInvoke. Invoke je synchronní a BeginInvoke asynchronní. Operace se přidá do fronty Dispatcher událostí v zadaném DispatcherPriority.

Invoke je synchronní operace; proto se ovládací prvek nevrátí do volajícího objektu, dokud se zpětné volání nevrátí.

Platí pro

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

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

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan)

Parametry

callback
Action

Delegát akce, který se má vyvolat prostřednictvím dispečera.

priority
DispatcherPriority

Priorita, která určuje pořadí, ve kterém je zadaná zpětná volání vyvolána vzhledem k ostatním čekajícím operacím v .Dispatcher

cancellationToken
CancellationToken

Objekt, který označuje, jestli se má akce zrušit.

timeout
TimeSpan

Maximální doba čekání na spuštění operace. Jakmile se operace spustí, dokončí se před vrácením této metody. Chcete-li určit nekonečné čekání, použijte hodnotu -1. Při volání stejného vlákna je jakákoli jiná záporná hodnota převedena na -1, což vede k nekonečnému čekání. Při volání napříč vlákny vyvolá jakákoli jiná záporná hodnota hodnotu ArgumentOutOfRangeException.

Výjimky

callback je null.

timeout je záporné číslo jiné než -1 a tato metoda byla vyvolána napříč vlákny.

priority není platná priorita.

Token zrušení byl zrušen. Tato výjimka se uloží do vrácené úlohy.

Platí pro

Invoke(DispatcherPriority, TimeSpan, Delegate)

Spustí zadaného delegáta synchronně se zadanou prioritou a se zadanou hodnotou časového limitu ve vlákně Dispatcher byl vytvořen.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate) As Object

Parametry

priority
DispatcherPriority

Priorita vzhledem k ostatním čekajícím operacím ve frontě Dispatcher událostí, se kterou je vyvolána zadaná metoda.

timeout
TimeSpan

Maximální doba čekání na spuštění operace. Jakmile se operace spustí, dokončí se před vrácením této metody. Chcete-li určit nekonečné čekání, použijte hodnotu -1. Při volání stejného vlákna je jakákoli jiná záporná hodnota převedena na -1, což vede k nekonečnému čekání. Při volání napříč vlákny vyvolá jakákoli jiná záporná hodnota hodnotu ArgumentOutOfRangeException.

method
Delegate

Delegát na metodu, která nepřijímá žádné argumenty, která je vložena do Dispatcher fronty událostí.

Návraty

Vrácená hodnota z delegáta, který je vyvolán, nebo null pokud delegát nemá žádnou návratnou hodnotu.

Atributy

Výjimky

method je null.

timeout je záporné číslo jiné než -1 a tato metoda byla vyvolána napříč vlákny.

priority se rovná hodnotě Inactive.

priority není platná priorita.

Poznámky

Ve WPF může k ho objektu DispatcherObject přistupovat pouze vlákno, které vytvořilo objekt. Například vlákno na pozadí, které je odsunutí z hlavního vlákna uživatelského rozhraní nemůže aktualizovat obsah objektu Button , který byl vytvořen ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti Content objektu Button, musí vlákno na pozadí delegovat práci na vlákno přidružené k Dispatcher vláknu uživatelského rozhraní. K tomu slouží buď Invoke , nebo BeginInvoke. Invoke je synchronní a BeginInvoke asynchronní. Operace se přidá do fronty Dispatcher událostí v zadaném DispatcherPriority.

Invoke je synchronní operace; proto se ovládací prvek nevrátí do volajícího objektu, dokud se zpětné volání nevrátí.

Platí pro

Invoke(DispatcherPriority, Delegate, Object)

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

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object) As Object

Parametry

priority
DispatcherPriority

Priorita vzhledem k ostatním čekajícím operacím ve frontě Dispatcher událostí, se kterou je vyvolána zadaná metoda.

method
Delegate

Delegát metody, která přijímá jeden argument, který je vložen do Dispatcher fronty událostí.

arg
Object

Objekt, který se má předat jako argument dané metodě.

Návraty

Vrácená hodnota z delegáta, který je vyvolán, nebo null pokud delegát nemá žádnou návratnou hodnotu.

Atributy

Výjimky

priority se rovná hodnotě Inactive.

priority není platná priorita.

method je null.

Poznámky

arg může být null , pokud argument není potřeba.

Ve WPF může k ho objektu DispatcherObject přistupovat pouze vlákno, které vytvořilo objekt. Například vlákno na pozadí, které je odsunutí z hlavního vlákna uživatelského rozhraní nemůže aktualizovat obsah objektu Button , který byl vytvořen ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti Content objektu Button, musí vlákno na pozadí delegovat práci na vlákno přidružené k Dispatcher vláknu uživatelského rozhraní. K tomu slouží buď Invoke , nebo BeginInvoke. Invoke je synchronní a BeginInvoke asynchronní. Operace se přidá do fronty Dispatcher událostí v zadaném DispatcherPriority.

Invoke je synchronní operace; proto se ovládací prvek nevrátí do volajícího objektu, dokud se zpětné volání nevrátí.

Platí pro

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

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

public:
 System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, TimeSpan timeout, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * TimeSpan * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, priority As DispatcherPriority, ParamArray args As Object()) As Object

Parametry

method
Delegate

Delegát na metodu, která přijímá parametry zadané v argssouboru , který se odešle do Dispatcher fronty událostí.

timeout
TimeSpan

Maximální doba čekání na spuštění operace. Jakmile se operace spustí, dokončí se před vrácením této metody. Chcete-li určit nekonečné čekání, použijte hodnotu -1. Při volání stejného vlákna je jakákoli jiná záporná hodnota převedena na -1, což vede k nekonečnému čekání. Při volání napříč vlákny vyvolá jakákoli jiná záporná hodnota hodnotu ArgumentOutOfRangeException.

priority
DispatcherPriority

Priorita vzhledem k ostatním čekajícím operacím ve frontě Dispatcher událostí, se kterou je vyvolána zadaná metoda.

args
Object[]

Pole objektů, které se předávají jako argumenty dané metodě. Může být null.

Návraty

Vrácená hodnota z delegáta, který je vyvolán, nebo null pokud delegát nemá žádnou návratnou hodnotu.

Výjimky

method je null.

timeout je záporné číslo jiné než -1 a tato metoda byla vyvolána napříč vlákny.

priority se rovná hodnotě Inactive.

priority není platná priorita.

Poznámky

Ve WPF může k ho objektu DispatcherObject přistupovat pouze vlákno, které vytvořilo objekt. Například vlákno na pozadí, které je odsunutí z hlavního vlákna uživatelského rozhraní nemůže aktualizovat obsah objektu Button , který byl vytvořen ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti Content objektu Button, musí vlákno na pozadí delegovat práci na vlákno přidružené k Dispatcher vláknu uživatelského rozhraní. K tomu slouží buď Invoke , nebo BeginInvoke. Invoke je synchronní a BeginInvoke asynchronní. Operace se přidá do fronty Dispatcher událostí v zadaném DispatcherPriority.

Invoke je synchronní operace; proto se ovládací prvek nevrátí do volajícího objektu, dokud se zpětné volání nevrátí.

Platí pro

Invoke(Delegate, TimeSpan, Object[])

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

public:
 System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, TimeSpan timeout, params object[] args);
member this.Invoke : Delegate * TimeSpan * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, ParamArray args As Object()) As Object

Parametry

method
Delegate

Delegát na metodu, která přijímá parametry zadané v argssouboru , který se odešle do Dispatcher fronty událostí.

timeout
TimeSpan

Maximální doba čekání na spuštění operace. Jakmile se však operace spustí, dokončí se před vrácením této metody. Chcete-li určit nekonečné čekání, použijte hodnotu -1. Při volání stejného vlákna je jakákoli jiná záporná hodnota převedena na -1, což vede k nekonečnému čekání. Při volání napříč vlákny vyvolá jakákoli jiná záporná hodnota hodnotu ArgumentOutOfRangeException.

args
Object[]

Pole objektů, které se předávají jako argumenty dané metodě. Může být null , pokud nejsou potřeba žádné argumenty.

Návraty

Vrácená hodnota z delegáta, který je vyvolán, nebo null pokud delegát nemá žádnou návratnou hodnotu.

Výjimky

method je null.

timeout je jiné záporné číslo než -1, které vyvoláváte napříč vlákny.

Poznámky

Ve WPF může k ho objektu DispatcherObject přistupovat pouze vlákno, které vytvořilo objekt. Například vlákno na pozadí, které je odsunutí z hlavního vlákna uživatelského rozhraní nemůže aktualizovat obsah objektu Button , který byl vytvořen ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti Content objektu Button, musí vlákno na pozadí delegovat práci na vlákno přidružené k Dispatcher vláknu uživatelského rozhraní. K tomu slouží buď Invoke , nebo BeginInvoke. Invoke je synchronní a BeginInvoke asynchronní. Operace se přidá do fronty Dispatcher událostí v zadaném DispatcherPriority.

Invoke je synchronní operace; Proto se ovládací prvek nevrátí do volajícího objektu, dokud se nevrátí zpětné volání.

Platí pro

Invoke(Action, DispatcherPriority, CancellationToken)

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

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken)

Parametry

callback
Action

Delegát pro vyvolání prostřednictvím dispečeru.

priority
DispatcherPriority

Priorita, která určuje pořadí, ve kterém je zadaná zpětná volání vyvolána vzhledem k ostatním čekajícím operacím v .Dispatcher

cancellationToken
CancellationToken

Objekt, který označuje, jestli se má akce zrušit.

Výjimky

Token zrušení byl zrušen. Tato výjimka se uloží do vrácené úlohy.

Platí pro

Invoke(DispatcherPriority, Delegate)

Spustí zadaného delegáta synchronně se zadanou prioritou ve vlákně, ke Dispatcher kterému je přidružen.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate) As Object

Parametry

priority
DispatcherPriority

Priorita, se kterou je vyvolána zadaná metoda, vzhledem k ostatním čekajícím operacím ve frontě Dispatcher událostí.

method
Delegate

Delegát na metodu, která nepřijímá žádné argumenty, která je vložena do Dispatcher fronty událostí.

Návraty

Vrácená hodnota z delegáta, který je vyvolán, nebo null pokud delegát nemá žádnou návratnou hodnotu.

Atributy

Výjimky

priority se rovná hodnotě Inactive.

priority není platná priorita.

method je null.

Příklady

Následující příklad umístí delegáta na adresu Dispatcher pomocí NormalInvoke.

// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    // Place delegate on the Dispatcher.
    this.Dispatcher.Invoke(DispatcherPriority.Normal,
        new TimerDispatcherDelegate(TimerWorkItem));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
    ' Place delegate on the Dispatcher.
    Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub

Poznámky

Ve WPF může k ho objektu DispatcherObject přistupovat pouze vlákno, které vytvořilo objekt. Například vlákno na pozadí, které je odsunutí z hlavního vlákna uživatelského rozhraní nemůže aktualizovat obsah objektu Button , který byl vytvořen ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti Content objektu Button, musí vlákno na pozadí delegovat práci na vlákno přidružené k Dispatcher vláknu uživatelského rozhraní. K tomu slouží buď Invoke , nebo BeginInvoke. Invoke je synchronní a BeginInvoke asynchronní. Operace se přidá do fronty Dispatcher událostí v zadaném DispatcherPriority.

Invoke je synchronní operace; proto se ovládací prvek nevrátí do volajícího objektu, dokud se zpětné volání nevrátí.

Platí pro

Invoke(Delegate, Object[])

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

public:
 System::Object ^ Invoke(Delegate ^ method, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, params object[] args);
member this.Invoke : Delegate * obj[] -> obj
Public Function Invoke (method As Delegate, ParamArray args As Object()) As Object

Parametry

method
Delegate

Delegát na metodu, která přijímá parametry zadané v argssouboru , který se odešle do Dispatcher fronty událostí.

args
Object[]

Pole objektů, které se předávají jako argumenty dané metodě. Může být null.

Návraty

Vrácená hodnota z delegáta, který je vyvolán, nebo null pokud delegát nemá žádnou návratnou hodnotu.

Poznámky

Ve WPF může k ho objektu DispatcherObject přistupovat pouze vlákno, které vytvořilo objekt. Například vlákno na pozadí, které je odsunutí z hlavního vlákna uživatelského rozhraní nemůže aktualizovat obsah objektu Button , který byl vytvořen ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti Content objektu Button, musí vlákno na pozadí delegovat práci na vlákno přidružené k Dispatcher vláknu uživatelského rozhraní. K tomu slouží buď Invoke , nebo BeginInvoke. Invoke je synchronní a BeginInvoke asynchronní. Operace se přidá do fronty Dispatcher událostí v zadaném DispatcherPriority.

Invoke je synchronní operace; proto se ovládací prvek nevrátí do volajícího objektu, dokud se zpětné volání nevrátí.

Platí pro

Invoke(Action, DispatcherPriority)

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

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority)

Parametry

callback
Action

Delegát pro vyvolání prostřednictvím dispečeru.

priority
DispatcherPriority

Priorita, která určuje pořadí, ve kterém je zadaná zpětná volání vyvolána vzhledem k ostatním čekajícím operacím v .Dispatcher

Platí pro

Invoke(Action)

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

public:
 void Invoke(Action ^ callback);
public void Invoke (Action callback);
member this.Invoke : Action -> unit
Public Sub Invoke (callback As Action)

Parametry

callback
Action

Delegát pro vyvolání prostřednictvím dispečeru.

Poznámky

Výchozí priorita je DispatcherPriority.Send.

Platí pro

Invoke(Delegate, DispatcherPriority, Object[])

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

public:
 System::Object ^ Invoke(Delegate ^ method, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, priority As DispatcherPriority, ParamArray args As Object()) As Object

Parametry

method
Delegate

Delegát na metodu, která přijímá parametry zadané v argssouboru , který se odešle do Dispatcher fronty událostí.

priority
DispatcherPriority

Priorita, se kterou je vyvolána zadaná metoda, vzhledem k ostatním čekajícím operacím ve frontě Dispatcher událostí.

args
Object[]

Pole objektů, které se předávají jako argumenty dané metodě. Může být null.

Návraty

Vrácená hodnota z delegáta, který je vyvolán, nebo null pokud delegát nemá žádnou návratnou hodnotu.

Poznámky

Ve WPF může k ho objektu DispatcherObject přistupovat pouze vlákno, které vytvořilo objekt. Například vlákno na pozadí, které je odsunutí z hlavního vlákna uživatelského rozhraní nemůže aktualizovat obsah objektu Button , který byl vytvořen ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti Content objektu Button, musí vlákno na pozadí delegovat práci na vlákno přidružené k Dispatcher vláknu uživatelského rozhraní. K tomu slouží buď Invoke , nebo BeginInvoke. Invoke je synchronní a BeginInvoke asynchronní. Operace se přidá do fronty Dispatcher událostí v zadaném DispatcherPriority.

Invoke je synchronní operace; proto se ovládací prvek nevrátí do volajícího objektu, dokud se zpětné volání nevrátí.

Platí pro

Invoke<TResult>(Func<TResult>)

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

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback);
public TResult Invoke<TResult> (Func<TResult> callback);
member this.Invoke : Func<'Result> -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult)) As TResult

Parametry typu

TResult

Typ návratové hodnoty zadaného delegáta.

Parametry

callback
Func<TResult>

Delegát pro vyvolání prostřednictvím dispečeru.

Návraty

TResult

Hodnota vrácená parametrem callback.

Platí pro

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

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

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority) As TResult

Parametry typu

TResult

Typ návratové hodnoty zadaného delegáta.

Parametry

callback
Func<TResult>

Delegát pro vyvolání prostřednictvím dispečeru.

priority
DispatcherPriority

Priorita, která určuje pořadí, ve kterém je zadaná zpětná volání vyvolána vzhledem k ostatním čekajícím operacím v .Dispatcher

Návraty

TResult

Hodnota vrácená parametrem callback.

Platí pro

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

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

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken) As TResult

Parametry typu

TResult

Typ návratové hodnoty zadaného delegáta.

Parametry

callback
Func<TResult>

Delegát pro vyvolání prostřednictvím dispečeru.

priority
DispatcherPriority

Priorita, která určuje pořadí, ve kterém je zadaná zpětná volání vyvolána vzhledem k ostatním čekajícím operacím v .Dispatcher

cancellationToken
CancellationToken

Objekt, který označuje, zda má být operace zrušena.

Návraty

TResult

Hodnota vrácená parametrem callback.

Výjimky

Token zrušení byl zrušen. Tato výjimka se uloží do vrácené úlohy.

Platí pro

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

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

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan) As TResult

Parametry typu

TResult

Typ návratové hodnoty zadaného delegáta.

Parametry

callback
Func<TResult>

Delegát pro vyvolání prostřednictvím dispečeru.

priority
DispatcherPriority

Priorita, která určuje pořadí, ve kterém je zadaná zpětná volání vyvolána vzhledem k ostatním čekajícím operacím v .Dispatcher

cancellationToken
CancellationToken

Objekt, který označuje, zda má být operace zrušena.

timeout
TimeSpan

Maximální doba čekání na spuštění operace. Jakmile se operace spustí, dokončí se před vrácením této metody. Chcete-li určit nekonečné čekání, použijte hodnotu -1. Při volání stejného vlákna je jakákoli jiná záporná hodnota převedena na -1, což vede k nekonečnému čekání. Při volání napříč vlákny vyvolá jakákoli jiná záporná hodnota hodnotu ArgumentOutOfRangeException.

Návraty

TResult

Hodnota vrácená parametrem callback.

Výjimky

callback je null.

timeout je záporné číslo jiné než -1 a metoda byla vyvolána napříč vlákny.

priority není platná priorita.

Token zrušení byl zrušen. Tato výjimka se uloží do vrácené úlohy.

Platí pro