Dispatcher.Invoke Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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ý DispatcherPriority.
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
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
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
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
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
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
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
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
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
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.