Dispatcher.Invoke Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Kör det angivna ombudet synkront på den tråd som Dispatcher är associerad med.
Överlagringar
| Name | Description |
|---|---|
| Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[]) |
Kör det angivna ombudet med den angivna prioriteten med de angivna argumenten synkront i tråden som Dispatcher är associerad med. |
| Invoke(DispatcherPriority, TimeSpan, Delegate, Object) |
Kör det angivna ombudet med den angivna prioriteten med det angivna argumentet synkront på den tråd som Dispatcher är associerad med. |
| Invoke(DispatcherPriority, Delegate, Object, Object[]) |
Kör det angivna ombudet med den angivna prioriteten med de angivna argumenten synkront i tråden som Dispatcher är associerad med. |
| Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan) |
Kör den angivna Action synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med. |
| Invoke(DispatcherPriority, TimeSpan, Delegate) |
Kör det angivna ombudet synkront med den angivna prioriteten och med det angivna tidsgränsvärdet i tråden som Dispatcher skapades. |
| Invoke(DispatcherPriority, Delegate, Object) |
Kör det angivna ombudet med den angivna prioriteten med det angivna argumentet synkront på den tråd som Dispatcher är associerad med. |
| Invoke(Delegate, TimeSpan, DispatcherPriority, Object[]) |
Kör det angivna ombudet inom det angivna tidsintervallet vid den angivna prioriteten med de angivna argumenten synkront på den tråd som Dispatcher är associerad med. |
| Invoke(Delegate, TimeSpan, Object[]) |
Kör det angivna ombudet inom det angivna tidsintervallet vid den angivna prioriteten med de angivna argumenten synkront på den tråd som Dispatcher är associerad med. |
| Invoke(Action, DispatcherPriority, CancellationToken) |
Kör den angivna Action synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med. |
| Invoke(DispatcherPriority, Delegate) |
Kör det angivna ombudet synkront med den angivna prioriteten i tråden Dispatcher som är associerad med. |
| Invoke(Delegate, Object[]) |
Kör det angivna ombudet med de angivna argumenten synkront på den tråd som Dispatcher är associerad med. |
| Invoke(Action, DispatcherPriority) |
Kör den angivna Action synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med. |
| Invoke(Action) |
Kör den angivna Action synkront på tråden som Dispatcher är associerad med. |
| Invoke(Delegate, DispatcherPriority, Object[]) |
Kör det angivna ombudet med den angivna prioriteten med de angivna argumenten synkront i tråden som Dispatcher är associerad med. |
| Invoke<TResult>(Func<TResult>) |
Kör den angivna Func<TResult> synkront på tråden som Dispatcher är associerad med. |
| Invoke<TResult>(Func<TResult>, DispatcherPriority) |
Kör den angivna Func<TResult> synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med. |
| Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken) |
Kör den angivna Func<TResult> synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med. |
| Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan) |
Kör den angivna Func<TResult> synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med. |
Exempel
I följande exempel placeras ett ombud på en Dispatcher vid Normal användning av 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
Kommentarer
I WPF kan endast tråden som skapade en DispatcherObject komma åt objektet. En bakgrundstråd som har knoppats av från huvudtråden för användargränssnittet kan till exempel inte uppdatera innehållet i en Button som skapades i användargränssnittstråden. För att bakgrundstråden ska få åtkomst till egenskapen ButtonInnehåll för måste bakgrundstråden delegera arbetet till den Dispatcher associerade med användargränssnittstråden. Detta görs med hjälp av antingen Invoke eller BeginInvoke. Invoke är synkron och BeginInvoke asynkron. Åtgärden läggs till i händelsekön för Dispatcher den angivna DispatcherPriority.
Invoke är en synkron åtgärd. Kontrollen återgår därför inte till det anropande objektet förrän återanropet har returnerats.
Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])
Kör det angivna ombudet med den angivna prioriteten med de angivna argumenten synkront i tråden som Dispatcher är associerad med.
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
Parametrar
- priority
- DispatcherPriority
Prioriteten, i förhållande till de andra väntande åtgärderna i Dispatcher händelsekön, med vilken den angivna metoden anropas.
- timeout
- TimeSpan
Den maximala väntetiden för att åtgärden ska starta. När åtgärden har startats slutförs den innan den här metoden returneras. Om du vill ange en oändlig väntan använder du värdet -1. I ett anrop med samma tråd konverteras alla andra negativa värden till -1, vilket resulterar i en oändlig väntan. I ett korstrådsanrop genererar alla andra negativa värden en ArgumentOutOfRangeException.
- method
- Delegate
Ett ombud till en metod som tar flera argument, som skickas till Dispatcher händelsekön.
- arg
- Object
Ett objekt som ska skickas som ett argument till den angivna metoden.
- args
- Object[]
En matris med objekt som ska skickas som argument till den angivna metoden.
Returer
Returvärdet från ombudet som anropas eller null om ombudet inte har något returvärde.
- Attribut
Undantag
priority är lika med Inactive.
priority är inte ett giltigt DispatcherPriority.
method är null.
timeout är ett annat negativt tal än -1 och den här metoden anropades över trådar.
Kommentarer
arg kan vara null om ett argument inte behövs.
I WPF kan endast tråden som skapade en DispatcherObject komma åt objektet. En bakgrundstråd som har knoppats av från huvudtråden för användargränssnittet kan till exempel inte uppdatera innehållet i en Button som skapades i användargränssnittstråden. För att bakgrundstråden ska få åtkomst till egenskapen ButtonInnehåll för måste bakgrundstråden delegera arbetet till den Dispatcher associerade med användargränssnittstråden. Detta görs med hjälp av antingen Invoke eller BeginInvoke. Invoke är synkron och BeginInvoke asynkron. Åtgärden läggs till i händelsekön för Dispatcher den angivna DispatcherPriority.
Invoke är en synkron åtgärd. Kontrollen återgår därför inte till det anropande objektet förrän återanropet har returnerats.
Gäller för
Invoke(DispatcherPriority, TimeSpan, Delegate, Object)
Kör det angivna ombudet med den angivna prioriteten med det angivna argumentet synkront på den tråd som Dispatcher är associerad med.
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
Parametrar
- priority
- DispatcherPriority
Prioriteten, i förhållande till de andra väntande åtgärderna i Dispatcher händelsekön, med vilken den angivna metoden anropas.
- timeout
- TimeSpan
Den maximala väntetiden för att åtgärden ska starta. När åtgärden har startats slutförs den innan den här metoden returneras. Om du vill ange en oändlig väntan använder du värdet -1. I ett anrop med samma tråd konverteras alla andra negativa värden till -1, vilket resulterar i en oändlig väntan. I ett korstrådsanrop genererar alla andra negativa värden en ArgumentOutOfRangeException.
- method
- Delegate
Ett ombud till en metod som tar flera argument, som skickas till Dispatcher händelsekön.
- arg
- Object
Ett objekt som ska skickas som ett argument till den angivna metoden. Detta kan vara null om inga argument behövs.
Returer
Returvärdet från ombudet som anropas eller null om ombudet inte har något returvärde.
- Attribut
Undantag
priority är lika med Inactive.
priority är inte en giltig prioritet.
method är null.
Kommentarer
arg kan vara null om ett argument inte behövs
I WPF kan endast tråden som skapade en DispatcherObject komma åt objektet. En bakgrundstråd som har knoppats av från huvudtråden för användargränssnittet kan till exempel inte uppdatera innehållet i en Button som skapades i användargränssnittstråden. För att bakgrundstråden ska få åtkomst till egenskapen ButtonInnehåll för måste bakgrundstråden delegera arbetet till den Dispatcher associerade med användargränssnittstråden. Detta görs med hjälp av antingen Invoke eller BeginInvoke. Invoke är synkron och BeginInvoke asynkron. Åtgärden läggs till i händelsekön för Dispatcher den angivna DispatcherPriority.
Invoke är en synkron åtgärd. Kontrollen återgår därför inte till det anropande objektet förrän återanropet har returnerats.
Gäller för
Invoke(DispatcherPriority, Delegate, Object, Object[])
Kör det angivna ombudet med den angivna prioriteten med de angivna argumenten synkront i tråden som Dispatcher är associerad med.
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
Parametrar
- priority
- DispatcherPriority
Prioriteten, i förhållande till de andra väntande åtgärderna i Dispatcher händelsekön, med vilken den angivna metoden anropas.
- method
- Delegate
Ett ombud till en metod som tar flera argument, som skickas till Dispatcher händelsekön.
- arg
- Object
Ett objekt som ska skickas som ett argument till den angivna metoden.
- args
- Object[]
En matris med objekt som ska skickas som argument till den angivna metoden.
Returer
Returvärdet från ombudet som anropas eller null om ombudet inte har något returvärde.
- Attribut
Undantag
priority är lika med Inactive.
priority är inte en giltig prioritet.
method är null.
Kommentarer
arg kan vara null om ett argument inte behövs
I WPF kan endast tråden som skapade en DispatcherObject komma åt objektet. En bakgrundstråd som har knoppats av från huvudtråden för användargränssnittet kan till exempel inte uppdatera innehållet i en Button som skapades i användargränssnittstråden. För att bakgrundstråden ska få åtkomst till egenskapen ButtonInnehåll för måste bakgrundstråden delegera arbetet till den Dispatcher associerade med användargränssnittstråden. Detta görs med hjälp av antingen Invoke eller BeginInvoke. Invoke är synkron och BeginInvoke asynkron. Åtgärden läggs till i händelsekön för Dispatcher den angivna DispatcherPriority.
Invoke är en synkron åtgärd. Kontrollen återgår därför inte till det anropande objektet förrän återanropet har returnerats.
Gäller för
Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)
Kör den angivna Action synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med.
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)
Parametrar
- callback
- Action
Ett åtgärdsdelegat som ska anropas via avsändaren.
- priority
- DispatcherPriority
Prioriteten som avgör i vilken ordning den angivna återanropet anropas i förhållande till de andra väntande åtgärderna i Dispatcher.
- cancellationToken
- CancellationToken
Ett objekt som anger om åtgärden ska avbrytas.
- timeout
- TimeSpan
Den maximala väntetiden för att åtgärden ska starta. När åtgärden har startats slutförs den innan den här metoden returneras. Om du vill ange en oändlig väntan använder du värdet -1. I ett anrop med samma tråd konverteras alla andra negativa värden till -1, vilket resulterar i en oändlig väntan. I ett korstrådsanrop genererar alla andra negativa värden en ArgumentOutOfRangeException.
Undantag
callback är null.
timeout är ett annat negativt tal än -1 och den här metoden anropades över trådar.
priority är inte en giltig prioritet.
Annulleringstoken avbröts. Det här undantaget lagras i den returnerade aktiviteten.
Gäller för
Invoke(DispatcherPriority, TimeSpan, Delegate)
Kör det angivna ombudet synkront med den angivna prioriteten och med det angivna tidsgränsvärdet i tråden som Dispatcher skapades.
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
Parametrar
- priority
- DispatcherPriority
Prioriteten, i förhållande till de andra väntande åtgärderna i Dispatcher händelsekön, med vilken den angivna metoden anropas.
- timeout
- TimeSpan
Den maximala väntetiden för att åtgärden ska starta. När åtgärden har startats slutförs den innan den här metoden returneras. Om du vill ange en oändlig väntan använder du värdet -1. I ett anrop med samma tråd konverteras alla andra negativa värden till -1, vilket resulterar i en oändlig väntan. I ett korstrådsanrop genererar alla andra negativa värden en ArgumentOutOfRangeException.
- method
- Delegate
Ombudet till en metod som inte tar några argument, som skickas till Dispatcher händelsekön.
Returer
Returvärdet från ombudet som anropas eller null om ombudet inte har något returvärde.
- Attribut
Undantag
method är null.
timeout är ett annat negativt tal än -1 och den här metoden anropades över trådar.
priority är lika med Inactive.
priority är inte en giltig prioritet.
Kommentarer
I WPF kan endast tråden som skapade en DispatcherObject komma åt objektet. En bakgrundstråd som har knoppats av från huvudtråden för användargränssnittet kan till exempel inte uppdatera innehållet i en Button som skapades i användargränssnittstråden. För att bakgrundstråden ska få åtkomst till egenskapen ButtonInnehåll för måste bakgrundstråden delegera arbetet till den Dispatcher associerade med användargränssnittstråden. Detta görs med hjälp av antingen Invoke eller BeginInvoke. Invoke är synkron och BeginInvoke asynkron. Åtgärden läggs till i händelsekön för Dispatcher den angivna DispatcherPriority.
Invoke är en synkron åtgärd. Kontrollen återgår därför inte till det anropande objektet förrän återanropet har returnerats.
Gäller för
Invoke(DispatcherPriority, Delegate, Object)
Kör det angivna ombudet med den angivna prioriteten med det angivna argumentet synkront på den tråd som Dispatcher är associerad med.
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
Parametrar
- priority
- DispatcherPriority
Prioriteten, i förhållande till de andra väntande åtgärderna i Dispatcher händelsekön, med vilken den angivna metoden anropas.
- method
- Delegate
Ett ombud till en metod som tar ett argument, som skickas till Dispatcher händelsekön.
- arg
- Object
Ett objekt som ska skickas som ett argument till den angivna metoden.
Returer
Returvärdet från ombudet som anropas eller null om ombudet inte har något returvärde.
- Attribut
Undantag
priority är lika med Inactive.
priority är inte en giltig prioritet.
method är null.
Kommentarer
arg kan vara null om ett argument inte behövs
I WPF kan endast tråden som skapade en DispatcherObject komma åt objektet. En bakgrundstråd som har knoppats av från huvudtråden för användargränssnittet kan till exempel inte uppdatera innehållet i en Button som skapades i användargränssnittstråden. För att bakgrundstråden ska få åtkomst till egenskapen ButtonInnehåll för måste bakgrundstråden delegera arbetet till den Dispatcher associerade med användargränssnittstråden. Detta görs med hjälp av antingen Invoke eller BeginInvoke. Invoke är synkron och BeginInvoke asynkron. Åtgärden läggs till i händelsekön för Dispatcher den angivna DispatcherPriority.
Invoke är en synkron åtgärd. Kontrollen återgår därför inte till det anropande objektet förrän återanropet har returnerats.
Gäller för
Invoke(Delegate, TimeSpan, DispatcherPriority, Object[])
Kör det angivna ombudet inom det angivna tidsintervallet vid den angivna prioriteten med de angivna argumenten synkront på den tråd som Dispatcher är associerad med.
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
Parametrar
- method
- Delegate
Ett ombud till en metod som tar parametrar som anges i args, som skickas till Dispatcher händelsekön.
- timeout
- TimeSpan
Den maximala väntetiden för att åtgärden ska starta. När åtgärden har startats slutförs den innan den här metoden returneras. Om du vill ange en oändlig väntan använder du värdet -1. I ett anrop med samma tråd konverteras alla andra negativa värden till -1, vilket resulterar i en oändlig väntan. I ett korstrådsanrop genererar alla andra negativa värden en ArgumentOutOfRangeException.
- priority
- DispatcherPriority
Prioriteten, i förhållande till de andra väntande åtgärderna i Dispatcher händelsekön, med vilken den angivna metoden anropas.
- args
- Object[]
En matris med objekt som ska skickas som argument till den angivna metoden. Kan vara null.
Returer
Returvärdet från ombudet som anropas eller null om ombudet inte har något returvärde.
Undantag
method är null.
timeout är ett annat negativt tal än -1 och den här metoden anropades över trådar.
priority är lika med Inactive.
priority är inte en giltig prioritet.
Kommentarer
I WPF kan endast tråden som skapade en DispatcherObject komma åt objektet. En bakgrundstråd som har knoppats av från huvudtråden för användargränssnittet kan till exempel inte uppdatera innehållet i en Button som skapades i användargränssnittstråden. För att bakgrundstråden ska få åtkomst till egenskapen ButtonInnehåll för måste bakgrundstråden delegera arbetet till den Dispatcher associerade med användargränssnittstråden. Detta görs med hjälp av antingen Invoke eller BeginInvoke. Invoke är synkron och BeginInvoke asynkron. Åtgärden läggs till i händelsekön för Dispatcher den angivna DispatcherPriority.
Invoke är en synkron åtgärd. Kontrollen återgår därför inte till det anropande objektet förrän återanropet har returnerats.
Gäller för
Invoke(Delegate, TimeSpan, Object[])
Kör det angivna ombudet inom det angivna tidsintervallet vid den angivna prioriteten med de angivna argumenten synkront på den tråd som Dispatcher är associerad med.
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
Parametrar
- method
- Delegate
Ett ombud till en metod som tar parametrar som anges i args, som skickas till Dispatcher händelsekön.
- timeout
- TimeSpan
Den maximala väntetiden för att åtgärden ska starta. Men när åtgärden startar slutförs den innan den här metoden returneras. Om du vill ange en oändlig väntan använder du värdet -1. I ett anrop med samma tråd konverteras alla andra negativa värden till -1, vilket resulterar i en oändlig väntan. I ett korstrådsanrop genererar alla andra negativa värden en ArgumentOutOfRangeException.
- args
- Object[]
En matris med objekt som ska skickas som argument till den angivna metoden. Kan vara null om inga argument behövs.
Returer
Returvärdet från ombudet som anropas eller null om ombudet inte har något returvärde.
Undantag
method är null.
timeout är ett annat negativt tal än -1 och du anropar över trådar.
Kommentarer
I WPF kan endast tråden som skapade en DispatcherObject komma åt objektet. En bakgrundstråd som har knoppats av från huvudtråden för användargränssnittet kan till exempel inte uppdatera innehållet i en Button som skapades i användargränssnittstråden. För att bakgrundstråden ska få åtkomst till egenskapen ButtonInnehåll för måste bakgrundstråden delegera arbetet till den Dispatcher associerade med användargränssnittstråden. Detta görs med hjälp av antingen Invoke eller BeginInvoke. Invoke är synkron och BeginInvoke asynkron. Åtgärden läggs till i händelsekön för Dispatcher den angivna DispatcherPriority.
Invoke är en synkron åtgärd. Kontrollen återgår därför inte till det anropande objektet förrän återanropet har returnerats.
Gäller för
Invoke(Action, DispatcherPriority, CancellationToken)
Kör den angivna Action synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med.
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)
Parametrar
- callback
- Action
Ett ombud som ska anropas via avsändaren.
- priority
- DispatcherPriority
Prioriteten som avgör i vilken ordning den angivna återanropet anropas i förhållande till de andra väntande åtgärderna i Dispatcher.
- cancellationToken
- CancellationToken
Ett objekt som anger om åtgärden ska avbrytas.
Undantag
Annulleringstoken avbröts. Det här undantaget lagras i den returnerade aktiviteten.
Gäller för
Invoke(DispatcherPriority, Delegate)
Kör det angivna ombudet synkront med den angivna prioriteten i tråden Dispatcher som är associerad med.
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
Parametrar
- priority
- DispatcherPriority
Den prioritet med vilken den angivna metoden anropas, i förhållande till de andra väntande åtgärderna i Dispatcher händelsekön.
- method
- Delegate
Ett ombud till en metod som inte tar några argument, som skickas till Dispatcher händelsekön.
Returer
Returvärdet från ombudet som anropas eller null om ombudet inte har något returvärde.
- Attribut
Undantag
priority är lika med Inactive.
priority är inte en giltig prioritet.
method är null.
Exempel
I följande exempel placeras ett ombud på en Dispatcher vid Normal användning av 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
Kommentarer
I WPF kan endast tråden som skapade en DispatcherObject komma åt objektet. En bakgrundstråd som har knoppats av från huvudtråden för användargränssnittet kan till exempel inte uppdatera innehållet i en Button som skapades i användargränssnittstråden. För att bakgrundstråden ska få åtkomst till egenskapen ButtonInnehåll för måste bakgrundstråden delegera arbetet till den Dispatcher associerade med användargränssnittstråden. Detta görs med hjälp av antingen Invoke eller BeginInvoke. Invoke är synkron och BeginInvoke asynkron. Åtgärden läggs till i händelsekön för Dispatcher den angivna DispatcherPriority.
Invoke är en synkron åtgärd. Kontrollen återgår därför inte till det anropande objektet förrän återanropet har returnerats.
Gäller för
Invoke(Delegate, Object[])
Kör det angivna ombudet med de angivna argumenten synkront på den tråd som Dispatcher är associerad med.
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
Parametrar
- method
- Delegate
Ett ombud till en metod som tar parametrar som anges i args, som skickas till Dispatcher händelsekön.
- args
- Object[]
En matris med objekt som ska skickas som argument till den angivna metoden. Kan vara null.
Returer
Returvärdet från ombudet som anropas eller null om ombudet inte har något returvärde.
Kommentarer
I WPF kan endast tråden som skapade en DispatcherObject komma åt objektet. En bakgrundstråd som har knoppats av från huvudtråden för användargränssnittet kan till exempel inte uppdatera innehållet i en Button som skapades i användargränssnittstråden. För att bakgrundstråden ska få åtkomst till egenskapen ButtonInnehåll för måste bakgrundstråden delegera arbetet till den Dispatcher associerade med användargränssnittstråden. Detta görs med hjälp av antingen Invoke eller BeginInvoke. Invoke är synkron och BeginInvoke asynkron. Åtgärden läggs till i händelsekön för Dispatcher den angivna DispatcherPriority.
Invoke är en synkron åtgärd. Kontrollen återgår därför inte till det anropande objektet förrän återanropet har returnerats.
Gäller för
Invoke(Action, DispatcherPriority)
Kör den angivna Action synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med.
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)
Parametrar
- callback
- Action
Ett ombud som ska anropas via avsändaren.
- priority
- DispatcherPriority
Prioriteten som avgör i vilken ordning den angivna återanropet anropas i förhållande till de andra väntande åtgärderna i Dispatcher.
Gäller för
Invoke(Action)
Kör den angivna Action synkront på tråden som Dispatcher är associerad med.
public:
void Invoke(Action ^ callback);
public void Invoke(Action callback);
member this.Invoke : Action -> unit
Public Sub Invoke (callback As Action)
Parametrar
- callback
- Action
Ett ombud som ska anropas via avsändaren.
Kommentarer
Standardprioriteten är DispatcherPriority.Send.
Gäller för
Invoke(Delegate, DispatcherPriority, Object[])
Kör det angivna ombudet med den angivna prioriteten med de angivna argumenten synkront i tråden som Dispatcher är associerad med.
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
Parametrar
- method
- Delegate
Ett ombud till en metod som tar parametrar som anges i args, som skickas till Dispatcher händelsekön.
- priority
- DispatcherPriority
Den prioritet med vilken den angivna metoden anropas, i förhållande till de andra väntande åtgärderna i Dispatcher händelsekön.
- args
- Object[]
En matris med objekt som ska skickas som argument till den angivna metoden. Kan vara null.
Returer
Returvärdet från ombudet som anropas eller null om ombudet inte har något returvärde.
Kommentarer
I WPF kan endast tråden som skapade en DispatcherObject komma åt objektet. En bakgrundstråd som har knoppats av från huvudtråden för användargränssnittet kan till exempel inte uppdatera innehållet i en Button som skapades i användargränssnittstråden. För att bakgrundstråden ska få åtkomst till egenskapen ButtonInnehåll för måste bakgrundstråden delegera arbetet till den Dispatcher associerade med användargränssnittstråden. Detta görs med hjälp av antingen Invoke eller BeginInvoke. Invoke är synkron och BeginInvoke asynkron. Åtgärden läggs till i händelsekön för Dispatcher den angivna DispatcherPriority.
Invoke är en synkron åtgärd. Kontrollen återgår därför inte till det anropande objektet förrän återanropet har returnerats.
Gäller för
Invoke<TResult>(Func<TResult>)
Kör den angivna Func<TResult> synkront på tråden som Dispatcher är associerad med.
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
Typparametrar
- TResult
Returvärdetypen för det angivna ombudet.
Parametrar
- callback
- Func<TResult>
Ett ombud som ska anropas via avsändaren.
Returer
Värdet som returneras av callback.
Gäller för
Invoke<TResult>(Func<TResult>, DispatcherPriority)
Kör den angivna Func<TResult> synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med.
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
Typparametrar
- TResult
Returvärdetypen för det angivna ombudet.
Parametrar
- callback
- Func<TResult>
Ett ombud som ska anropas via avsändaren.
- priority
- DispatcherPriority
Prioriteten som avgör i vilken ordning den angivna återanropet anropas i förhållande till de andra väntande åtgärderna i Dispatcher.
Returer
Värdet som returneras av callback.
Gäller för
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)
Kör den angivna Func<TResult> synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med.
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
Typparametrar
- TResult
Returvärdetypen för det angivna ombudet.
Parametrar
- callback
- Func<TResult>
Ett ombud som ska anropas via avsändaren.
- priority
- DispatcherPriority
Prioriteten som avgör i vilken ordning den angivna återanropet anropas i förhållande till de andra väntande åtgärderna i Dispatcher.
- cancellationToken
- CancellationToken
Ett objekt som anger om åtgärden ska avbrytas.
Returer
Värdet som returneras av callback.
Undantag
Annulleringstoken avbröts. Det här undantaget lagras i den returnerade aktiviteten.
Gäller för
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)
Kör den angivna Func<TResult> synkront vid den angivna prioriteten i tråden som Dispatcher är associerad med.
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
Typparametrar
- TResult
Returvärdetypen för det angivna ombudet.
Parametrar
- callback
- Func<TResult>
Ett ombud som ska anropas via avsändaren.
- priority
- DispatcherPriority
Prioriteten som avgör i vilken ordning den angivna återanropet anropas i förhållande till de andra väntande åtgärderna i Dispatcher.
- cancellationToken
- CancellationToken
Ett objekt som anger om åtgärden ska avbrytas.
- timeout
- TimeSpan
Den maximala väntetiden för att åtgärden ska starta. När åtgärden har startats slutförs den innan den här metoden returneras. Om du vill ange en oändlig väntan använder du värdet -1. I ett anrop med samma tråd konverteras alla andra negativa värden till -1, vilket resulterar i en oändlig väntan. I ett korstrådsanrop genererar alla andra negativa värden en ArgumentOutOfRangeException.
Returer
Värdet som returneras av callback.
Undantag
callback är null.
timeout är ett annat negativt tal än -1 och metoden anropades mellan trådar.
priority är inte en giltig prioritet.
Annulleringstoken avbröts. Det här undantaget lagras i den returnerade aktiviteten.