Dispatcher.BeginInvoke 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í.
Spustí delegáta asynchronně ve vlákně, ke které Dispatcher je přidružen.
Přetížení
| Name | Description |
|---|---|
| BeginInvoke(Delegate, Object[]) |
Spustí zadaný delegát asynchronně se zadanými argumenty ve vlákně, ve Dispatcher které byl vytvořen. |
| BeginInvoke(DispatcherPriority, Delegate) |
Spustí zadaný delegát asynchronně na zadané prioritě ve vlákně, ke které Dispatcher je přidružen. |
| BeginInvoke(Delegate, DispatcherPriority, Object[]) |
Spustí zadaný delegát asynchronně se zadanými argumenty v zadané prioritě ve vlákně, ve Dispatcher které byl vytvořen. |
| BeginInvoke(DispatcherPriority, Delegate, Object) |
Spustí zadaný delegát asynchronně na zadané prioritě a se zadaným argumentem ve vlákně, ke které Dispatcher je přidružen. |
| BeginInvoke(DispatcherPriority, Delegate, Object, Object[]) |
Spustí zadaný delegát asynchronně na zadané prioritě a se zadaným polem argumentů ve vlákně, ke Dispatcher které je přidružen. |
Poznámky
Ve WPF může k ho objektu přistupovat pouze vlákno DispatcherObject , které vytvořilo objekt. Například vlákno na pozadí, které se spouští 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 Content podprocesu Button, musí vlákno na pozadí delegovat práci na Dispatcher přidružené vlákno uživatelského rozhraní. Toho lze dosáhnout pomocí nebo InvokeBeginInvoke. Invoke je synchronní a BeginInvoke je asynchronní. Operace se přidá do fronty událostí v zadaném bodě DispatcherDispatcherPriority.
BeginInvoke je asynchronní; ovládací prvek se proto vrátí okamžitě volajícímu objektu po jeho volání.
BeginInvoke DispatcherOperation vrátí objekt, který lze použít k interakci s delegátem, když je delegát ve frontě událostí.
Objekt DispatcherOperation vrácený uživatelem BeginInvoke lze použít několika způsoby pro interakci se zadaným delegátem, například:
DispatcherPriority Změna delegáta, protože čeká na spuštění ve frontě událostí.
Odebrání delegáta z fronty událostí
Čeká se na vrácení delegáta.
Získání hodnoty, kterou delegát vrátí po jeho spuštění.
Pokud je současně provedeno DispatcherPriorityvíce BeginInvoke volání, budou provedeny v pořadí, v jakém byly hovory provedeny.
Je-li BeginInvoke volána na vypnuto Dispatcher , stav vlastnost vrácené DispatcherOperation je nastavena na Abortedhodnotu .
BeginInvoke(Delegate, Object[])
Spustí zadaný delegát asynchronně se zadanými argumenty ve vlákně, ve Dispatcher které byl vytvořen.
public:
System::Windows::Threading::DispatcherOperation ^ BeginInvoke(Delegate ^ method, ... cli::array <System::Object ^> ^ args);
public System.Windows.Threading.DispatcherOperation BeginInvoke(Delegate method, params object[] args);
member this.BeginInvoke : Delegate * obj[] -> System.Windows.Threading.DispatcherOperation
Public Function BeginInvoke (method As Delegate, ParamArray args As Object()) As DispatcherOperation
Parametry
- method
- Delegate
Delegát na metodu, která přebírá parametry zadané v args, který je vložen do Dispatcher fronty událostí.
- args
- Object[]
Pole objektů, které mají být předány jako argumenty dané metodě. Může to být null.
Návraty
Objekt, který se vrátí okamžitě po BeginInvoke zavolání, který lze použít k interakci s delegátem, protože čeká na spuštění ve frontě událostí.
Poznámky
Objekt DispatcherOperation vrácený uživatelem BeginInvoke lze použít několika způsoby pro interakci se zadaným delegátem, například:
DispatcherPriority Změna delegáta, protože čeká na spuštění ve frontě událostí.
Odebrání delegáta z fronty událostí
Čeká se na vrácení delegáta.
Získání hodnoty, kterou delegát vrátí po jeho spuštění.
BeginInvoke je asynchronní; ovládací prvek se proto vrátí okamžitě volajícímu objektu po jeho volání.
Ve WPF může k ho objektu přistupovat pouze vlákno DispatcherObject , které vytvořilo objekt. Například vlákno na pozadí, které se spouští 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 Content podprocesu Button, musí vlákno na pozadí delegovat práci na Dispatcher přidružené vlákno uživatelského rozhraní. Toho lze dosáhnout pomocí nebo InvokeBeginInvoke. Invoke je synchronní a BeginInvoke je asynchronní. Operace se přidá do fronty událostí v zadaném bodě DispatcherDispatcherPriority.
Je-li BeginInvoke volána na vypnuto Dispatcher , stav vlastnost vrácené DispatcherOperation je nastavena na Abortedhodnotu .
Platí pro
BeginInvoke(DispatcherPriority, Delegate)
Spustí zadaný delegát asynchronně na zadané prioritě ve vlákně, ke které Dispatcher je přidružen.
public:
System::Windows::Threading::DispatcherOperation ^ BeginInvoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public System.Windows.Threading.DispatcherOperation BeginInvoke(System.Windows.Threading.DispatcherPriority priority, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.BeginInvoke : System.Windows.Threading.DispatcherPriority * Delegate -> System.Windows.Threading.DispatcherOperation
Public Function BeginInvoke (priority As DispatcherPriority, method As Delegate) As DispatcherOperation
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á nepřijímá žádné argumenty, které jsou vloženy do Dispatcher fronty událostí.
Návraty
Objekt, který se vrátí okamžitě po BeginInvoke zavolání, který lze použít k interakci s delegátem, protože čeká na spuštění ve frontě událostí.
- Atributy
Výjimky
method je null.
priority není platný DispatcherPriority.
Příklady
Následující příklad ukazuje, jak umístit operaci na Dispatcher. Úplný zdrojový kód tohoto příkladu najdete v tématu Single-Threaded Application with Long-Running Calculation Sample.
Nejprve se vytvoří delegát, který nepřijímá žádné argumenty.
public delegate void NextPrimeDelegate();
Public Delegate Sub NextPrimeDelegate()
BeginInvoke(DispatcherPriority, Delegate) Dále se volá. Vzhledem k tomu, že každá DispatcherObject má vlastnost, která vracíDispatcher, je přidružena, požadovaná Dispatcher je získána dotazováním DispatcherObject, v tomto případě pojmenované startStopButtonButton . Volání má BeginInvoke(DispatcherPriority, Delegate) dva parametry: prioritu, která je nastavena na DispatcherPriority.Normal, a zpětné volání, které se předává prostřednictvím instance delegáta NextPrimeDelegate.
startStopButton.Dispatcher.BeginInvoke(
DispatcherPriority.Normal,
new NextPrimeDelegate(CheckNextNumber));
startStopButton.Dispatcher.BeginInvoke(DispatcherPriority.Normal, New NextPrimeDelegate(AddressOf CheckNextNumber))
Poznámky
Pokud je současně provedeno DispatcherPriorityvíce BeginInvoke volání, budou provedeny v pořadí, v jakém byly hovory provedeny.
BeginInvoke DispatcherOperation vrátí objekt, který lze použít k interakci s delegátem, když je delegát ve frontě událostí.
Objekt DispatcherOperation vrácený uživatelem BeginInvoke lze použít několika způsoby pro interakci se zadaným delegátem, například:
DispatcherPriority Změna delegáta, protože čeká na spuštění ve frontě událostí.
Odebrání delegáta z fronty událostí
Čeká se na vrácení delegáta.
Získání hodnoty, kterou delegát vrátí po jeho spuštění.
BeginInvoke je asynchronní; ovládací prvek se proto vrátí okamžitě volajícímu objektu po jeho volání.
Ve WPF může k ho objektu přistupovat pouze vlákno DispatcherObject , které vytvořilo objekt. Například vlákno na pozadí, které se spouští 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 Content podprocesu Button, musí vlákno na pozadí delegovat práci na Dispatcher přidružené vlákno uživatelského rozhraní. Toho lze dosáhnout pomocí nebo InvokeBeginInvoke. Invoke je synchronní a BeginInvoke je asynchronní. Operace se přidá do fronty událostí v zadaném bodě DispatcherDispatcherPriority.
Je-li BeginInvoke volána na vypnuto Dispatcher , stav vlastnost vrácené DispatcherOperation je nastavena na Abortedhodnotu .
Viz také
Platí pro
BeginInvoke(Delegate, DispatcherPriority, Object[])
Spustí zadaný delegát asynchronně se zadanými argumenty v zadané prioritě ve vlákně, ve Dispatcher které byl vytvořen.
public:
System::Windows::Threading::DispatcherOperation ^ BeginInvoke(Delegate ^ method, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public System.Windows.Threading.DispatcherOperation BeginInvoke(Delegate method, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.BeginInvoke : Delegate * System.Windows.Threading.DispatcherPriority * obj[] -> System.Windows.Threading.DispatcherOperation
Public Function BeginInvoke (method As Delegate, priority As DispatcherPriority, ParamArray args As Object()) As DispatcherOperation
Parametry
- method
- Delegate
Delegát na metodu, která přebírá parametry zadané v args, který je vložen do Dispatcher fronty událostí.
- 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é mají být předány jako argumenty dané metodě. Může to být null.
Návraty
Objekt, který se vrátí okamžitě po BeginInvoke zavolání, který lze použít k interakci s delegátem, protože čeká na spuštění ve frontě událostí.
Poznámky
Objekt DispatcherOperation vrácený uživatelem BeginInvoke lze použít několika způsoby pro interakci se zadaným delegátem, například:
DispatcherPriority Změna delegáta, protože čeká na spuštění ve frontě událostí.
Odebrání delegáta z fronty událostí
Čeká se na vrácení delegáta.
Získání hodnoty, kterou delegát vrátí po jeho spuštění.
BeginInvoke je asynchronní; ovládací prvek se proto vrátí okamžitě volajícímu objektu po jeho volání.
Ve WPF může k ho objektu přistupovat pouze vlákno DispatcherObject , které vytvořilo objekt. Například vlákno na pozadí, které se spouští 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 Content podprocesu Button, musí vlákno na pozadí delegovat práci na Dispatcher přidružené vlákno uživatelského rozhraní. Toho lze dosáhnout pomocí nebo InvokeBeginInvoke. Invoke je synchronní a BeginInvoke je asynchronní. Operace se přidá do fronty událostí v zadaném bodě DispatcherDispatcherPriority.
Je-li BeginInvoke volána na vypnuto Dispatcher , stav vlastnost vrácené DispatcherOperation je nastavena na Abortedhodnotu .
Platí pro
BeginInvoke(DispatcherPriority, Delegate, Object)
Spustí zadaný delegát asynchronně na zadané prioritě a se zadaným argumentem ve vlákně, ke které Dispatcher je přidružen.
public:
System::Windows::Threading::DispatcherOperation ^ BeginInvoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public System.Windows.Threading.DispatcherOperation BeginInvoke(System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.BeginInvoke : System.Windows.Threading.DispatcherPriority * Delegate * obj -> System.Windows.Threading.DispatcherOperation
Public Function BeginInvoke (priority As DispatcherPriority, method As Delegate, arg As Object) As DispatcherOperation
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ý je vložen do Dispatcher fronty událostí.
- arg
- Object
Objekt, který se má předat jako argument zadané metodě.
Návraty
Objekt, který se vrátí okamžitě po BeginInvoke zavolání, který lze použít k interakci s delegátem, protože čeká na spuštění ve frontě událostí.
- Atributy
Výjimky
method je null.
priority není platný DispatcherPriority.
Příklady
Následující příklad ukazuje, jak umístit operaci na Dispatcher.
Nejprve se vytvoří delegát, který přijímá jeden argument, v tomto případě řetězec.
private delegate void OneArgDelegate(String arg);
Private Delegate Sub OneArgDelegate(ByVal arg As String)
BeginInvoke(DispatcherPriority, Delegate, Object) Dále se volá. Vzhledem k tomu, že každá DispatcherObject má vlastnost, která vracíDispatcher, je přidružena, požadovaná Dispatcher je získána dotazováním DispatcherObject, v tomto případě pojmenované tomorrowsWeatherGrid . Volání přebírá BeginInvoke(DispatcherPriority, Delegate, Object) tři parametry: prioritu, která je nastavena na DispatcherPriority.Normal; zpětné volání, které se předává prostřednictvím instance delegáta OneArgDelegate; a řetězec s názvem weather, což je argument zpětného volání.
// Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(
System.Windows.Threading.DispatcherPriority.Normal,
new OneArgDelegate(UpdateUserInterface),
weather);
' Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, New OneArgDelegate(AddressOf UpdateUserInterface), weather)
Poznámky
arg může být null v případě, že nejsou potřeba žádné argumenty.
BeginInvoke DispatcherOperation vrátí objekt, který lze použít k interakci s delegátem, když je delegát ve frontě událostí.
Objekt DispatcherOperation vrácený uživatelem BeginInvoke lze použít několika způsoby pro interakci se zadaným delegátem, například:
DispatcherPriority Změna delegáta, protože čeká na spuštění ve frontě událostí.
Odebrání delegáta z fronty událostí
Čeká se na vrácení delegáta.
Získání hodnoty, kterou delegát vrátí po jeho spuštění.
BeginInvoke je asynchronní; ovládací prvek se proto vrátí okamžitě volajícímu objektu po jeho volání.
Ve WPF může k ho objektu přistupovat pouze vlákno DispatcherObject , které vytvořilo objekt. Například vlákno na pozadí, které se spouští 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 Buttonobsahu , musí vlákno na pozadí delegovat práci na Dispatcher přidružené vlákno uživatelského rozhraní. Toho lze dosáhnout pomocí nebo InvokeBeginInvoke. Invoke je synchronní a BeginInvoke je asynchronní. Operace se přidá do fronty událostí v zadaném bodě DispatcherDispatcherPriority.
Pokud je současně provedeno DispatcherPriorityvíce BeginInvoke volání, budou provedeny v pořadí, v jakém byly hovory provedeny.
Je-li BeginInvoke volána na vypnuto Dispatcher , stav vlastnost vrácené DispatcherOperation je nastavena na Abortedhodnotu .
Viz také
Platí pro
BeginInvoke(DispatcherPriority, Delegate, Object, Object[])
Spustí zadaný delegát asynchronně na zadané prioritě a se zadaným polem argumentů ve vlákně, ke Dispatcher které je přidružen.
public:
System::Windows::Threading::DispatcherOperation ^ BeginInvoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public System.Windows.Threading.DispatcherOperation BeginInvoke(System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.BeginInvoke : System.Windows.Threading.DispatcherPriority * Delegate * obj * obj[] -> System.Windows.Threading.DispatcherOperation
Public Function BeginInvoke (priority As DispatcherPriority, method As Delegate, arg As Object, ParamArray args As Object()) As DispatcherOperation
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á 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
Objekt, který se vrátí okamžitě po BeginInvoke zavolání, lze použít k interakci s delegátem, protože čeká na spuštění ve frontě Dispatcher .
- Atributy
Výjimky
method je null.
DispatcherPriority není platná priorita.
Poznámky
Parametr arg může být null v případě, že nejsou potřeba žádné argumenty.
BeginInvoke DispatcherOperation vrátí objekt, který lze použít k interakci s delegátem, když je delegát ve frontě událostí.
Objekt DispatcherOperation vrácený uživatelem BeginInvoke lze použít několika způsoby pro interakci se zadaným delegátem, například:
DispatcherPriority Změna delegáta, protože čeká na spuštění ve frontě událostí.
Odebrání delegáta z fronty událostí
Čeká se na vrácení delegáta.
Získání hodnoty, kterou delegát vrátí po jeho spuštění.
BeginInvoke je asynchronní; ovládací prvek se proto vrátí okamžitě volajícímu objektu po jeho volání.
Ve WPF může k ho objektu přistupovat pouze vlákno DispatcherObject , které vytvořilo objekt. Například vlákno na pozadí, které se spouští 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 Content podprocesu Button, musí vlákno na pozadí delegovat práci na Dispatcher přidružené vlákno uživatelského rozhraní. Toho lze dosáhnout pomocí nebo InvokeBeginInvoke. Invoke je synchronní a BeginInvoke je asynchronní. Operace se přidá do fronty událostí v zadaném bodě DispatcherDispatcherPriority.
Pokud je současně provedeno DispatcherPriorityvíce BeginInvoke volání, budou provedeny v pořadí, v jakém byly hovory provedeny.
Je-li BeginInvoke volána na vypnuto Dispatcher , stav vlastnost vrácené DispatcherOperation je nastavena na Abortedhodnotu .