Dispatcher.Invoke Metoda

Definice

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

Přetíž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(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, 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(Action, DispatcherPriority, CancellationToken, TimeSpan)

Provede zadaný Action synchronně na zadané prioritě 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, 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(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(Action, DispatcherPriority, CancellationToken)

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

Invoke(DispatcherPriority, Delegate)

Provede zadaný delegát synchronně na zadané prioritě ve vlákně, ke kterému 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(Action, DispatcherPriority)

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

Invoke(Action)

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

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<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.

Příklady

Následující příklad umístí delegáta na Dispatcher at Normal using Invoke.

// 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 danému objektu přistupovat pouze vlákno, které vytvořilo DispatcherObject . Například vlákno na pozadí, které je vypnuté z hlavního vlákna uživatelského rozhraní, nemůže aktualizovat obsah vytvořeného Button ve vlákně uživatelského rozhraní. Aby vlákno na pozadí získalo přístup k vlastnosti ButtonObsah vlákna , musí vlákno pozadí delegovat práci na Dispatcher přidružené k 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 událostí zadaného Dispatcher DispatcherPriority.

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

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.

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ími operacím ve Dispatcher frontě událostí, se kterou je vyvolána zadaná metoda.

timeout
TimeSpan

Maximální doba čekání na spuštění operace. Po spuštění operace se dokončí před vrácením této metody. Pokud chcete zadat nekonečné čekání, použijte hodnotu -1. Ve volání stejného vlákna se jakákoli jiná záporná hodnota převede na -1, což vede k nekonečnému čekání. Při volání křížového vlákna vyvolá jakákoli jiná záporná hodnota ArgumentOutOfRangeExceptionhodnotu .

method
Delegate

Delegát na metodu, která přebírá více argumentů, které se nasdílí 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

Object

Vrácená hodnota od vyvolání delegáta nebo null pokud delegát nemá žádnou návratnou hodnotu.

Atributy

Výjimky

priority je rovno 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 v případě, že argument není nutný.

Ve WPF může k ho objektu přistupovat pouze vlákno, které vytvořilo DispatcherObject . Například vlákno na pozadí, které je vypnuté z hlavního vlákna uživatelského rozhraní, nemůže aktualizovat obsah vytvořeného Button ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti ButtonObsah vlákna , musí vlákno pozadí delegovat práci na Dispatcher přidruženou k vláknu uživatelského rozhraní. Toho dosáhnete pomocí buď Invoke nebo BeginInvoke. Invoke je synchronní a BeginInvoke je 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ý delegát v zadané prioritě 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ími operacím ve Dispatcher frontě událostí, se kterou je vyvolána zadaná metoda.

timeout
TimeSpan

Maximální doba čekání na spuštění operace. Po spuštění operace se dokončí před vrácením této metody. Pokud chcete zadat nekonečné čekání, použijte hodnotu -1. Ve volání stejného vlákna se jakákoli jiná záporná hodnota převede na -1, což vede k nekonečnému čekání. Při volání křížového vlákna vyvolá jakákoli jiná záporná hodnota ArgumentOutOfRangeExceptionhodnotu .

method
Delegate

Delegát na metodu, která přebírá více argumentů, které se nasdílí do Dispatcher fronty událostí.

arg
Object

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

Návraty

Object

Vrácená hodnota od vyvolání delegáta nebo null pokud delegát nemá žádnou návratnou hodnotu.

Atributy

Výjimky

priority je rovno Inactive.

priority není platná priorita.

method je null.

Poznámky

arg může být null v případě, že argument není nutný.

Ve WPF může k ho objektu přistupovat pouze vlákno, které vytvořilo DispatcherObject . Například vlákno na pozadí, které je vypnuté z hlavního vlákna uživatelského rozhraní, nemůže aktualizovat obsah vytvořeného Button ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti ButtonObsah vlákna , musí vlákno pozadí delegovat práci na Dispatcher přidruženou k vláknu uživatelského rozhraní. Toho dosáhnete pomocí buď Invoke nebo BeginInvoke. Invoke je synchronní a BeginInvoke je 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ý delegát na zadanou prioritu se zadanými argumenty 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, ... 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ími operacím ve Dispatcher frontě událostí, se kterou je vyvolána zadaná metoda.

method
Delegate

Delegát na metodu, která přebírá více argumentů, které se nasdílí do Dispatcher fronty událostí.

arg
Object

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

args
Object[]

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

Návraty

Object

Vrácená hodnota od vyvolání delegáta nebo null pokud delegát nemá žádnou návratnou hodnotu.

Atributy

Výjimky

priority je rovno Inactive.

priority není platná priorita.

method je null.

Poznámky

arg může být null v případě, že argument není nutný.

Ve WPF může k ho objektu přistupovat pouze vlákno, které vytvořilo DispatcherObject . Například vlákno na pozadí, které je vypnuté z hlavního vlákna uživatelského rozhraní, nemůže aktualizovat obsah vytvořeného Button ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti ButtonObsah vlákna , musí vlákno pozadí delegovat práci na Dispatcher přidruženou k vláknu uživatelského rozhraní. Toho dosáhnete pomocí buď Invoke nebo BeginInvoke. Invoke je synchronní a BeginInvoke je 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ě na zadané prioritě 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áno vzhledem k ostatním čekajících operacím v .Dispatcher

cancellationToken
CancellationToken

Objekt, který označuje, jestli chcete akci zrušit.

timeout
TimeSpan

Maximální doba čekání na spuštění operace. Po spuštění operace se dokončí před vrácením této metody. Pokud chcete zadat nekonečné čekání, použijte hodnotu -1. Ve volání stejného vlákna se jakákoli jiná záporná hodnota převede na -1, což vede k nekonečnému čekání. Při volání křížového vlákna vyvolá jakákoli jiná záporná hodnota ArgumentOutOfRangeExceptionhodnotu .

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.

Platí pro

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.

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ími operacím ve Dispatcher frontě událostí, se kterou je vyvolána zadaná metoda.

timeout
TimeSpan

Maximální doba čekání na spuštění operace. Po spuštění operace se dokončí před vrácením této metody. Pokud chcete zadat nekonečné čekání, použijte hodnotu -1. Ve volání stejného vlákna se jakákoli jiná záporná hodnota převede na -1, což vede k nekonečnému čekání. Při volání křížového vlákna vyvolá jakákoli jiná záporná hodnota ArgumentOutOfRangeExceptionhodnotu .

method
Delegate

Delegát na metodu, která nepřebere žádné argumenty, které se nasdílí do Dispatcher fronty událostí.

Návraty

Object

Vrácená hodnota od vyvolání delegáta 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 je rovno Inactive.

priority není platná priorita.

Poznámky

Ve WPF může k ho objektu přistupovat pouze vlákno, které vytvořilo DispatcherObject . Například vlákno na pozadí, které je vypnuté z hlavního vlákna uživatelského rozhraní, nemůže aktualizovat obsah vytvořeného Button ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti ButtonObsah vlákna , musí vlákno pozadí delegovat práci na Dispatcher přidruženou k vláknu uživatelského rozhraní. Toho dosáhnete pomocí buď Invoke nebo BeginInvoke. Invoke je synchronní a BeginInvoke je 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)

Provede zadaný delegát na zadané prioritě 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ími operacím ve Dispatcher frontě událostí, se kterou je vyvolána zadaná metoda.

method
Delegate

Delegát metody, která přebírá jeden argument, který se odešle do Dispatcher fronty událostí.

arg
Object

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

Návraty

Object

Vrácená hodnota od vyvolání delegáta nebo null pokud delegát nemá žádnou návratnou hodnotu.

Atributy

Výjimky

priority je rovno Inactive.

priority není platná priorita.

method je null.

Poznámky

arg může být null v případě, že argument není nutný.

Ve WPF může k ho objektu přistupovat pouze vlákno, které vytvořilo DispatcherObject . Například vlákno na pozadí, které je vypnuté z hlavního vlákna uživatelského rozhraní, nemůže aktualizovat obsah vytvořeného Button ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti ButtonObsah vlákna , musí vlákno pozadí delegovat práci na Dispatcher přidruženou k vláknu uživatelského rozhraní. Toho dosáhnete pomocí buď Invoke nebo BeginInvoke. Invoke je synchronní a BeginInvoke je 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ý 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.

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řebírá parametry zadané v args, která je vložena do Dispatcher fronty událostí.

timeout
TimeSpan

Maximální doba čekání na spuštění operace. Po spuštění operace se dokončí před vrácením této metody. Pokud chcete zadat nekonečné čekání, použijte hodnotu -1. Ve volání stejného vlákna se jakákoli jiná záporná hodnota převede na -1, což vede k nekonečnému čekání. Při volání křížového vlákna vyvolá jakákoli jiná záporná hodnota ArgumentOutOfRangeExceptionhodnotu .

priority
DispatcherPriority

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

args
Object[]

Pole objektů, které se mají předat jako argumenty dané metodě. Může to být null.

Návraty

Object

Vrácená hodnota od vyvolání delegáta 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 je rovno Inactive.

priority není platná priorita.

Poznámky

Ve WPF může k ho objektu přistupovat pouze vlákno, které vytvořilo DispatcherObject . Například vlákno na pozadí, které je vypnuté z hlavního vlákna uživatelského rozhraní, nemůže aktualizovat obsah vytvořeného Button ve vlákně uživatelského rozhraní. Aby vlákno na pozadí mohlo přistupovat k vlastnosti ButtonObsah vlákna , musí vlákno pozadí delegovat práci na Dispatcher přidruženou k vláknu uživatelského rozhraní. Toho dosáhnete pomocí buď Invoke nebo BeginInvoke. Invoke je synchronní a BeginInvoke je 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 v zadané prioritě se zadanými argumenty synchronně ve vlákně, ke které Dispatcher 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 metody, která přebírá parametry zadané v args, která se odešle do Dispatcher fronty událostí.

timeout
TimeSpan

Maximální doba čekání na spuštění operace. Jakmile se ale operace spustí, dokončí se před vrácením této metody. Pokud chcete zadat nekonečné čekání, použijte hodnotu -1. Ve volání stejného vlákna se jakákoli jiná záporná hodnota převede na -1, což vede k nekonečnému čekání. Při volání křížového vlákna vyvolá jakákoli jiná záporná ArgumentOutOfRangeExceptionhodnota hodnotu .

args
Object[]

Pole objektů, které se mají předat jako argumenty dané metodě. Může to být v null případě, že nejsou potřeba žádné argumenty.

Návraty

Object

Vrácená hodnota od vyvolání delegáta nebo null pokud delegát nemá žádnou návratnou hodnotu.

Výjimky

method je null.

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

Poznámky

Ve WPF může k danému objektu přistupovat pouze vlákno, které vytvořilo DispatcherObject . Například vlákno na pozadí, které je vypnuté z hlavního vlákna uživatelského rozhraní, nemůže aktualizovat obsah vytvořeného Button ve vlákně uživatelského rozhraní. Aby vlákno na pozadí získalo přístup k vlastnosti ButtonObsah vlákna , musí vlákno pozadí delegovat práci na Dispatcher přidružené k 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 událostí zadaného Dispatcher DispatcherPriority.

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

Platí pro

Invoke(Action, DispatcherPriority, CancellationToken)

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

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, který se má vyvolat prostřednictvím dispečera.

priority
DispatcherPriority

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

cancellationToken
CancellationToken

Objekt, který označuje, jestli chcete akci zrušit.

Platí pro

Invoke(DispatcherPriority, Delegate)

Provede zadaný delegát synchronně na zadané prioritě ve vlákně, ke kterému Dispatcher 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 zadaná metoda vyvolána vzhledem k ostatním čekajících operacím ve frontě Dispatcher událostí.

method
Delegate

Delegát metody, která neobsahuje žádné argumenty, které se nasdílí do Dispatcher fronty událostí.

Návraty

Object

Vrácená hodnota od vyvolání delegáta nebo null pokud delegát nemá žádnou návratnou hodnotu.

Atributy

Výjimky

priority je rovno Inactive.

priority není platná priorita.

method je null.

Příklady

Následující příklad umístí delegáta na Dispatcher at Normal using Invoke.

// 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 danému objektu přistupovat pouze vlákno, které vytvořilo DispatcherObject . Například vlákno na pozadí, které je vypnuté z hlavního vlákna uživatelského rozhraní, nemůže aktualizovat obsah vytvořeného Button ve vlákně uživatelského rozhraní. Aby vlákno na pozadí získalo přístup k vlastnosti ButtonObsah vlákna , musí vlákno pozadí delegovat práci na Dispatcher přidružené k 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 událostí zadaného Dispatcher DispatcherPriority.

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

Platí pro

Invoke(Delegate, Object[])

Spustí zadaný delegát se zadanými argumenty synchronně na 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 metody, která přebírá parametry zadané v args, která se odešle do Dispatcher fronty událostí.

args
Object[]

Pole objektů, které se mají předat jako argumenty dané metodě. Může to být null.

Návraty

Object

Vrácená hodnota od vyvolání delegáta nebo null pokud delegát nemá žádnou návratnou hodnotu.

Poznámky

Ve WPF může k danému objektu přistupovat pouze vlákno, které vytvořilo DispatcherObject . Například vlákno na pozadí, které je vypnuté z hlavního vlákna uživatelského rozhraní, nemůže aktualizovat obsah vytvořeného Button ve vlákně uživatelského rozhraní. Aby vlákno na pozadí získalo přístup k vlastnosti ButtonObsah vlákna , musí vlákno pozadí delegovat práci na Dispatcher přidružené k 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 událostí zadaného Dispatcher DispatcherPriority.

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

Platí pro

Invoke(Action, DispatcherPriority)

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

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, který se má vyvolat prostřednictvím dispečera.

priority
DispatcherPriority

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

Platí pro

Invoke(Action)

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

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, který se má vyvolat prostřednictvím dispečera.

Poznámky

Výchozí prioritou je DispatcherPriority.Send.

Platí pro

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.

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 metody, která přebírá parametry zadané v args, která se odešle do Dispatcher fronty událostí.

priority
DispatcherPriority

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

args
Object[]

Pole objektů, které se mají předat jako argumenty dané metodě. Může to být null.

Návraty

Object

Vrácená hodnota od vyvolání delegáta nebo null pokud delegát nemá žádnou návratnou hodnotu.

Poznámky

Ve WPF může k danému objektu přistupovat pouze vlákno, které vytvořilo DispatcherObject . Například vlákno na pozadí, které je vypnuté z hlavního vlákna uživatelského rozhraní, nemůže aktualizovat obsah vytvořeného Button ve vlákně uživatelského rozhraní. Aby vlákno na pozadí získalo přístup k vlastnosti ButtonObsah vlákna , musí vlákno pozadí delegovat práci na Dispatcher přidružené k 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 událostí zadaného Dispatcher DispatcherPriority.

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

Platí pro

Invoke<TResult>(Func<TResult>)

Provede zadaný Func<TResult> synchronně ve 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

Návratový typ hodnoty zadaného delegáta.

Parametry

callback
Func<TResult>

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

Návraty

TResult

Hodnota vrácená parametrem callback.

Platí pro

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

Provede zadaný Func<TResult> synchronně na zadané prioritě 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

Návratový typ hodnoty zadaného delegáta.

Parametry

callback
Func<TResult>

Delegát, 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áno vzhledem k ostatním čekajících 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ě na zadané prioritě 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

Návratový typ hodnoty zadaného delegáta.

Parametry

callback
Func<TResult>

Delegát, 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áno vzhledem k ostatním čekajících operacím v .Dispatcher

cancellationToken
CancellationToken

Objekt, který označuje, jestli chcete operaci zrušit.

Návraty

TResult

Hodnota vrácená parametrem callback.

Platí pro

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.

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

Návratový typ hodnoty zadaného delegáta.

Parametry

callback
Func<TResult>

Delegát, 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áno vzhledem k ostatním čekajících operacím v .Dispatcher

cancellationToken
CancellationToken

Objekt, který označuje, jestli chcete operaci zrušit.

timeout
TimeSpan

Maximální doba čekání na spuštění operace. Po spuštění operace se dokončí před vrácením této metody. Pokud chcete zadat nekonečné čekání, použijte hodnotu -1. Ve volání stejného vlákna se jakákoli jiná záporná hodnota převede na -1, což vede k nekonečnému čekání. Při volání křížového vlákna vyvolá jakákoli jiná záporná hodnota ArgumentOutOfRangeExceptionhodnotu .

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.

Platí pro