Dispatcher.Invoke Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wykonuje określony delegat synchronicznie w wątku, z który Dispatcher jest skojarzony.
Przeciążenia
Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[]) |
Wykonuje określonego delegata o określonym priorytetzie z określonymi argumentami synchronicznie w wątku Dispatcher skojarzonym z. |
Invoke(DispatcherPriority, TimeSpan, Delegate, Object) |
Wykonuje określonego delegata o określonym priorytetzie z określonym argumentem synchronicznie w wątku Dispatcher skojarzonym z. |
Invoke(DispatcherPriority, Delegate, Object, Object[]) |
Wykonuje określonego delegata o określonym priorytetzie z określonymi argumentami synchronicznie w wątku Dispatcher skojarzonym z. |
Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan) |
Wykonuje określony Action synchronicznie określony priorytet w wątku Dispatcher skojarzonym z nim. |
Invoke(DispatcherPriority, TimeSpan, Delegate) |
Wykonuje określony delegat synchronicznie o określonym priorytetzie i z określoną wartością limitu czasu w wątku, który Dispatcher został utworzony. |
Invoke(DispatcherPriority, Delegate, Object) |
Wykonuje określonego delegata o określonym priorytetzie z określonym argumentem synchronicznie w wątku Dispatcher skojarzonym z. |
Invoke(Delegate, TimeSpan, DispatcherPriority, Object[]) |
Wykonuje określonego delegata w określonym przedziale czasu na określonym priorytetzie z określonymi argumentami synchronicznie w wątku Dispatcher , z z który jest skojarzony. |
Invoke(Delegate, TimeSpan, Object[]) |
Wykonuje określonego delegata w określonym przedziale czasu na określonym priorytetzie z określonymi argumentami synchronicznie w wątku Dispatcher , z z który jest skojarzony. |
Invoke(Action, DispatcherPriority, CancellationToken) |
Wykonuje określony Action synchronicznie określony priorytet w wątku Dispatcher skojarzonym z nim. |
Invoke(DispatcherPriority, Delegate) |
Wykonuje określonego delegata synchronicznie na określonym priorytetzie w wątku skojarzonym Dispatcher z. |
Invoke(Delegate, Object[]) |
Wykonuje określonego delegata z określonymi argumentami synchronicznie w wątku Dispatcher skojarzonym z. |
Invoke(Action, DispatcherPriority) |
Wykonuje określony Action synchronicznie określony priorytet w wątku Dispatcher skojarzonym z nim. |
Invoke(Action) |
Wykonuje określony Action synchronicznie w wątku Dispatcher skojarzony z nim. |
Invoke(Delegate, DispatcherPriority, Object[]) |
Wykonuje określonego delegata o określonym priorytetzie z określonymi argumentami synchronicznie w wątku Dispatcher skojarzonym z. |
Invoke<TResult>(Func<TResult>) |
Wykonuje określony Func<TResult> synchronicznie w wątku Dispatcher skojarzony z nim. |
Invoke<TResult>(Func<TResult>, DispatcherPriority) |
Wykonuje określony Func<TResult> synchronicznie określony priorytet w wątku Dispatcher skojarzonym z nim. |
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken) |
Wykonuje określony Func<TResult> synchronicznie określony priorytet w wątku Dispatcher skojarzonym z nim. |
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan) |
Wykonuje określony Func<TResult> synchronicznie określony priorytet w wątku Dispatcher skojarzonym z nim. |
Przykłady
Poniższy przykład umieszcza delegata DispatcherNormal na obiekcie przy użyciu polecenia 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
Uwagi
W WPF tylko wątek, który utworzył obiekt DispatcherObject , może uzyskać dostęp do tego obiektu. Na przykład wątek w tle, który jest odłączony od głównego wątku interfejsu użytkownika, nie może zaktualizować zawartości elementu Button utworzonego w wątku interfejsu użytkownika. Aby wątek w tle uzyskiwał dostęp do właściwości Content elementu Button, wątek w tle musi delegować pracę do skojarzonego Dispatcher z wątkiem interfejsu użytkownika. Jest to realizowane przy użyciu polecenia Invoke lub BeginInvoke. Invoke jest synchroniczna i BeginInvoke jest asynchroniczna. Operacja jest dodawana do kolejki zdarzeń obiektu Dispatcher w określonym DispatcherPriorityobiekcie .
Invoke jest operacją synchroniczną; w związku z tym kontrolka nie powróci do obiektu wywołującego dopiero po powrocie wywołania zwrotnego.
Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])
Wykonuje określonego delegata o określonym priorytetzie z określonymi argumentami synchronicznie w wątku Dispatcher skojarzonym z.
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
Priorytet, względem innych oczekujących operacji w Dispatcher kolejce zdarzeń, z którymi wywoływana jest określona metoda.
- timeout
- TimeSpan
Maksymalny czas oczekiwania na uruchomienie operacji. Po rozpoczęciu operacji zostanie ukończona przed zwróceniem tej metody. Aby określić nieskończone oczekiwanie, użyj wartości -1. W wywołaniu tego samego wątku każda inna wartość ujemna jest konwertowana na -1, co powoduje nieskończone oczekiwanie. W wywołaniu międzywątkowa każda inna wartość ujemna zgłasza wartość ArgumentOutOfRangeException.
- method
- Delegate
Delegat do metody, która przyjmuje wiele argumentów, które są wypychane do kolejki zdarzeń Dispatcher .
- arg
- Object
Obiekt, który ma być przekazywany jako argument do określonej metody.
- args
- Object[]
Tablica obiektów, które mają być przekazywane jako argumenty do określonej metody.
Zwraca
Zwracana wartość z wywoływanego delegata lub null
jeśli delegat nie ma wartości zwracanej.
- Atrybuty
Wyjątki
priority
jest równe Inactive.
priority
nie jest prawidłowym DispatcherPriorityelementem .
method
to null
.
timeout
jest liczbą ujemną inną niż -1, a ta metoda została wywołana w wątkach.
Uwagi
arg
może być null
, jeśli argument nie jest potrzebny.
W WPF tylko wątek, który utworzył obiekt DispatcherObject , może uzyskać dostęp do tego obiektu. Na przykład wątek w tle, który jest odłączony od głównego wątku interfejsu użytkownika, nie może zaktualizować zawartości elementu Button utworzonego w wątku interfejsu użytkownika. Aby wątek w tle uzyskiwał dostęp do właściwości Content elementu Button, wątek w tle musi delegować pracę do Dispatcher skojarzonego z wątkiem interfejsu użytkownika. Jest to realizowane przy użyciu polecenia Invoke lub BeginInvoke. Invoke jest synchroniczna i BeginInvoke jest asynchroniczna. Operacja jest dodawana do kolejki zdarzeń Dispatcher określonego DispatcherPriorityobiektu .
Invoke jest operacją synchroniczną; w związku z tym kontrolka nie powróci do obiektu wywołującego dopiero po powrocie wywołania zwrotnego.
Dotyczy
Invoke(DispatcherPriority, TimeSpan, Delegate, Object)
Wykonuje określonego delegata o określonym priorytetzie z określonym argumentem synchronicznie w wątku Dispatcher skojarzonym z.
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
Priorytet, względem innych oczekujących operacji w Dispatcher kolejce zdarzeń, z którymi wywoływana jest określona metoda.
- timeout
- TimeSpan
Maksymalny czas oczekiwania na uruchomienie operacji. Po rozpoczęciu operacji zostanie ukończona przed zwróceniem tej metody. Aby określić nieskończone oczekiwanie, użyj wartości -1. W wywołaniu tego samego wątku każda inna wartość ujemna jest konwertowana na -1, co powoduje nieskończone oczekiwanie. W wywołaniu międzywątkowa każda inna wartość ujemna zgłasza wartość ArgumentOutOfRangeException.
- method
- Delegate
Delegat do metody, która przyjmuje wiele argumentów, które są wypychane do kolejki zdarzeń Dispatcher .
- arg
- Object
Obiekt, który ma być przekazywany jako argument do danej metody. Może to być null
, jeśli nie są potrzebne żadne argumenty.
Zwraca
Zwracana wartość z wywoływanego delegata lub null
jeśli delegat nie ma wartości zwracanej.
- Atrybuty
Wyjątki
priority
jest równe Inactive.
priority
nie jest prawidłowym priorytetem.
method
to null
.
Uwagi
arg
może być null
, jeśli argument nie jest potrzebny
W WPF tylko wątek, który utworzył obiekt DispatcherObject , może uzyskać dostęp do tego obiektu. Na przykład wątek w tle, który jest odłączony od głównego wątku interfejsu użytkownika, nie może zaktualizować zawartości elementu Button utworzonego w wątku interfejsu użytkownika. Aby wątek w tle uzyskiwał dostęp do właściwości Content elementu Button, wątek w tle musi delegować pracę do Dispatcher skojarzonego z wątkiem interfejsu użytkownika. Jest to realizowane przy użyciu polecenia Invoke lub BeginInvoke. Invoke jest synchroniczna i BeginInvoke jest asynchroniczna. Operacja jest dodawana do kolejki zdarzeń Dispatcher określonego DispatcherPriorityobiektu .
Invoke jest operacją synchroniczną; w związku z tym kontrolka nie powróci do obiektu wywołującego dopiero po powrocie wywołania zwrotnego.
Dotyczy
Invoke(DispatcherPriority, Delegate, Object, Object[])
Wykonuje określonego delegata o określonym priorytetzie z określonymi argumentami synchronicznie w wątku Dispatcher skojarzonym z.
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
Priorytet, względem innych oczekujących operacji w Dispatcher kolejce zdarzeń, z którymi wywoływana jest określona metoda.
- method
- Delegate
Delegat do metody, która przyjmuje wiele argumentów, które są wypychane do kolejki zdarzeń Dispatcher .
- arg
- Object
Obiekt, który ma być przekazywany jako argument do danej metody.
- args
- Object[]
Tablica obiektów, które mają być przekazywane jako argumenty do danej metody.
Zwraca
Zwracana wartość z wywoływanego delegata lub null
jeśli delegat nie ma wartości zwracanej.
- Atrybuty
Wyjątki
priority
jest równe Inactive.
priority
nie jest prawidłowym priorytetem.
method
to null
.
Uwagi
arg
może być null
, jeśli argument nie jest potrzebny
W WPF tylko wątek, który utworzył obiekt DispatcherObject , może uzyskać dostęp do tego obiektu. Na przykład wątek w tle, który jest odłączony od głównego wątku interfejsu użytkownika, nie może zaktualizować zawartości elementu Button utworzonego w wątku interfejsu użytkownika. Aby wątek w tle uzyskiwał dostęp do właściwości Content elementu Button, wątek w tle musi delegować pracę do Dispatcher skojarzonego z wątkiem interfejsu użytkownika. Jest to realizowane przy użyciu polecenia Invoke lub BeginInvoke. Invoke jest synchroniczna i BeginInvoke jest asynchroniczna. Operacja jest dodawana do kolejki zdarzeń Dispatcher określonego DispatcherPriorityobiektu .
Invoke jest operacją synchroniczną; w związku z tym kontrolka nie powróci do obiektu wywołującego dopiero po powrocie wywołania zwrotnego.
Dotyczy
Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)
Wykonuje określony Action synchronicznie określony priorytet w wątku Dispatcher skojarzonym z nim.
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
Delegat akcji do wywołania za pośrednictwem dyspozytora.
- priority
- DispatcherPriority
Priorytet określający kolejność wywoływania określonego wywołania zwrotnego względem innych oczekujących operacji w obiekcie Dispatcher.
- cancellationToken
- CancellationToken
Obiekt wskazujący, czy anulować akcję.
- timeout
- TimeSpan
Maksymalny czas oczekiwania na uruchomienie operacji. Po rozpoczęciu operacji zostanie ukończona przed zwróceniem tej metody. Aby określić nieskończone oczekiwanie, użyj wartości -1. W wywołaniu tego samego wątku każda inna wartość ujemna jest konwertowana na -1, co powoduje nieskończone oczekiwanie. W wywołaniu międzywątkowa każda inna wartość ujemna zgłasza wartość ArgumentOutOfRangeException.
Wyjątki
callback
to null
.
timeout
jest liczbą ujemną inną niż -1, a ta metoda została wywołana w wątkach.
priority
nie jest prawidłowym priorytetem.
Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwróconym zadaniu.
Dotyczy
Invoke(DispatcherPriority, TimeSpan, Delegate)
Wykonuje określony delegat synchronicznie o określonym priorytetzie i z określoną wartością limitu czasu w wątku, który Dispatcher został utworzony.
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
Priorytet, względem innych oczekujących operacji w Dispatcher kolejce zdarzeń, z którymi wywoływana jest określona metoda.
- timeout
- TimeSpan
Maksymalny czas oczekiwania na uruchomienie operacji. Po rozpoczęciu operacji zostanie ukończona przed zwróceniem tej metody. Aby określić nieskończone oczekiwanie, użyj wartości -1. W wywołaniu tego samego wątku każda inna wartość ujemna jest konwertowana na -1, co powoduje nieskończone oczekiwanie. W wywołaniu międzywątkowa każda inna wartość ujemna zgłasza wartość ArgumentOutOfRangeException.
- method
- Delegate
Delegat do metody, która nie przyjmuje żadnych argumentów, które są wypychane do kolejki zdarzeń Dispatcher .
Zwraca
Zwracana wartość z wywoływanego delegata lub null
jeśli delegat nie ma wartości zwracanej.
- Atrybuty
Wyjątki
method
to null
.
timeout
jest liczbą ujemną inną niż -1, a ta metoda została wywołana w wątkach.
priority
jest równe Inactive.
priority
nie jest prawidłowym priorytetem.
Uwagi
W WPF tylko wątek, który utworzył obiekt DispatcherObject , może uzyskać dostęp do tego obiektu. Na przykład wątek w tle, który jest odłączony od głównego wątku interfejsu użytkownika, nie może zaktualizować zawartości elementu Button utworzonego w wątku interfejsu użytkownika. Aby wątek w tle uzyskiwał dostęp do właściwości Content elementu Button, wątek w tle musi delegować pracę do Dispatcher skojarzonego z wątkiem interfejsu użytkownika. Jest to realizowane przy użyciu polecenia Invoke lub BeginInvoke. Invoke jest synchroniczna i BeginInvoke jest asynchroniczna. Operacja jest dodawana do kolejki zdarzeń Dispatcher określonego DispatcherPriorityobiektu .
Invoke jest operacją synchroniczną; w związku z tym kontrolka nie powróci do obiektu wywołującego dopiero po powrocie wywołania zwrotnego.
Dotyczy
Invoke(DispatcherPriority, Delegate, Object)
Wykonuje określonego delegata o określonym priorytetzie z określonym argumentem synchronicznie w wątku Dispatcher skojarzonym z.
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
Priorytet, względem innych oczekujących operacji w Dispatcher kolejce zdarzeń, z którymi wywoływana jest określona metoda.
- method
- Delegate
Delegat do metody, która przyjmuje jeden argument, który jest wypychany do kolejki zdarzeń Dispatcher .
- arg
- Object
Obiekt, który ma być przekazywany jako argument do danej metody.
Zwraca
Zwracana wartość z wywoływanego delegata lub null
jeśli delegat nie ma wartości zwracanej.
- Atrybuty
Wyjątki
priority
jest równe Inactive.
priority
nie jest prawidłowym priorytetem.
method
to null
.
Uwagi
arg
może być null
, jeśli argument nie jest potrzebny
W WPF tylko wątek, który utworzył obiekt DispatcherObject , może uzyskać dostęp do tego obiektu. Na przykład wątek w tle, który jest odłączony od głównego wątku interfejsu użytkownika, nie może zaktualizować zawartości elementu Button utworzonego w wątku interfejsu użytkownika. Aby wątek w tle uzyskiwał dostęp do właściwości Content elementu Button, wątek w tle musi delegować pracę do Dispatcher skojarzonego z wątkiem interfejsu użytkownika. Jest to realizowane przy użyciu polecenia Invoke lub BeginInvoke. Invoke jest synchroniczna i BeginInvoke jest asynchroniczna. Operacja jest dodawana do kolejki zdarzeń Dispatcher określonego DispatcherPriorityobiektu .
Invoke jest operacją synchroniczną; w związku z tym kontrolka nie powróci do obiektu wywołującego dopiero po powrocie wywołania zwrotnego.
Dotyczy
Invoke(Delegate, TimeSpan, DispatcherPriority, Object[])
Wykonuje określonego delegata w określonym przedziale czasu na określonym priorytetzie z określonymi argumentami synchronicznie w wątku Dispatcher , z z który jest skojarzony.
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
Delegat do metody, która przyjmuje parametry określone w args
obiekcie , który jest wypychany do kolejki zdarzeń Dispatcher .
- timeout
- TimeSpan
Maksymalny czas oczekiwania na uruchomienie operacji. Po rozpoczęciu operacji zostanie ukończona przed zwróceniem tej metody. Aby określić nieskończone oczekiwanie, użyj wartości -1. W wywołaniu tego samego wątku każda inna wartość ujemna jest konwertowana na -1, co powoduje nieskończone oczekiwanie. W wywołaniu międzywątkowa każda inna wartość ujemna zgłasza wartość ArgumentOutOfRangeException.
- priority
- DispatcherPriority
Priorytet, względem innych oczekujących operacji w Dispatcher kolejce zdarzeń, z którymi wywoływana jest określona metoda.
- args
- Object[]
Tablica obiektów, które mają być przekazywane jako argumenty do danej metody. Może to być null
.
Zwraca
Zwracana wartość z wywoływanego delegata lub null
jeśli delegat nie ma wartości zwracanej.
Wyjątki
method
to null
.
timeout
jest liczbą ujemną inną niż -1, a ta metoda została wywołana w wątkach.
priority
jest równe Inactive.
priority
nie jest prawidłowym priorytetem.
Uwagi
W WPF tylko wątek, który utworzył obiekt DispatcherObject , może uzyskać dostęp do tego obiektu. Na przykład wątek w tle, który jest odłączony od głównego wątku interfejsu użytkownika, nie może zaktualizować zawartości elementu Button utworzonego w wątku interfejsu użytkownika. Aby wątek w tle uzyskiwał dostęp do właściwości Content elementu Button, wątek w tle musi delegować pracę do Dispatcher skojarzonego z wątkiem interfejsu użytkownika. Jest to realizowane przy użyciu polecenia Invoke lub BeginInvoke. Invoke jest synchroniczna i BeginInvoke jest asynchroniczna. Operacja jest dodawana do kolejki zdarzeń Dispatcher określonego DispatcherPriorityobiektu .
Invoke jest operacją synchroniczną; w związku z tym kontrolka nie powróci do obiektu wywołującego dopiero po powrocie wywołania zwrotnego.
Dotyczy
Invoke(Delegate, TimeSpan, Object[])
Wykonuje określonego delegata w określonym przedziale czasu na określonym priorytetzie z określonymi argumentami synchronicznie w wątku Dispatcher , z z który jest skojarzony.
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
Delegat do metody, która przyjmuje parametry określone w args
obiekcie , który jest wypychany do kolejki zdarzeń Dispatcher .
- timeout
- TimeSpan
Maksymalny czas oczekiwania na uruchomienie operacji. Jednak po uruchomieniu operacji zostanie ukończona przed zwróceniem tej metody. Aby określić nieskończone oczekiwanie, użyj wartości -1. W wywołaniu tego samego wątku każda inna wartość ujemna jest konwertowana na -1, co powoduje nieskończone oczekiwanie. W wywołaniu międzywątkowa każda inna wartość ujemna zgłasza wartość ArgumentOutOfRangeException.
- args
- Object[]
Tablica obiektów, które mają być przekazywane jako argumenty do danej metody. Może to być null
, jeśli nie są potrzebne żadne argumenty.
Zwraca
Zwracana wartość z wywoływanego delegata lub null
jeśli delegat nie ma wartości zwracanej.
Wyjątki
method
to null
.
timeout
jest liczbą ujemną inną niż -1 i jest wywoływana między wątkami.
Uwagi
W WPF tylko wątek, który utworzył obiekt DispatcherObject , może uzyskać dostęp do tego obiektu. Na przykład wątek w tle, który jest odłączony od głównego wątku interfejsu użytkownika, nie może zaktualizować zawartości elementu Button utworzonego w wątku interfejsu użytkownika. Aby wątek w tle uzyskiwał dostęp do właściwości Content elementu Button, wątek w tle musi delegować pracę do Dispatcher skojarzonego z wątkiem interfejsu użytkownika. Jest to realizowane przy użyciu polecenia Invoke lub BeginInvoke. Invoke jest synchroniczna i BeginInvoke jest asynchroniczna. Operacja jest dodawana do kolejki zdarzeń Dispatcher określonego DispatcherPriorityobiektu .
Invoke jest operacją synchroniczną; dlatego kontrolka nie powróci do obiektu wywołującego dopiero po powrocie wywołania zwrotnego.
Dotyczy
Invoke(Action, DispatcherPriority, CancellationToken)
Wykonuje określony Action synchronicznie określony priorytet w wątku Dispatcher skojarzonym z nim.
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
Delegat do wywołania za pośrednictwem dyspozytora.
- priority
- DispatcherPriority
Priorytet określający kolejność wywoływania określonego wywołania zwrotnego względem innych oczekujących operacji w obiekcie Dispatcher.
- cancellationToken
- CancellationToken
Obiekt wskazujący, czy anulować akcję.
Wyjątki
Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwróconym zadaniu.
Dotyczy
Invoke(DispatcherPriority, Delegate)
Wykonuje określony delegat synchronicznie z określonym priorytetem w wątku Dispatcher , z który jest skojarzony.
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
Priorytet, z którym jest wywoływana określona metoda, względem innych oczekujących operacji w kolejce zdarzeń Dispatcher .
- method
- Delegate
Delegat do metody, która nie przyjmuje żadnych argumentów, które są wypychane do kolejki zdarzeń Dispatcher .
Zwraca
Wartość zwracana z delegata wywoływanego lub null
jeśli delegat nie ma wartości zwracanej.
- Atrybuty
Wyjątki
priority
jest równe Inactive.
priority
nie jest prawidłowym priorytetem.
method
to null
.
Przykłady
Poniższy przykład umieszcza delegata na Dispatcher obiekcie przy Normal użyciu polecenia 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
Uwagi
W WPF tylko wątek, który utworzył obiekt DispatcherObject , może uzyskać dostęp do tego obiektu. Na przykład wątek w tle, który jest odłączony od głównego wątku interfejsu użytkownika, nie może zaktualizować zawartości elementu Button utworzonego w wątku interfejsu użytkownika. Aby wątek w tle uzyskiwał dostęp do właściwości Content elementu Button, wątek w tle musi delegować pracę do skojarzonego Dispatcher z wątkiem interfejsu użytkownika. Jest to realizowane przy użyciu polecenia Invoke lub BeginInvoke. Invoke jest synchroniczna i BeginInvoke jest asynchroniczna. Operacja jest dodawana do kolejki zdarzeń obiektu Dispatcher w określonym DispatcherPriorityobiekcie .
Invoke jest operacją synchroniczną; w związku z tym kontrolka nie powróci do obiektu wywołującego dopiero po powrocie wywołania zwrotnego.
Dotyczy
Invoke(Delegate, Object[])
Wykonuje określony delegat z określonymi argumentami synchronicznie w wątku, z który Dispatcher jest skojarzony.
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
Delegat do metody, która przyjmuje parametry określone w args
elemecie , który jest wypychany do kolejki zdarzeń Dispatcher .
- args
- Object[]
Tablica obiektów, które mają być przekazywane jako argumenty do danej metody. Może to być null
.
Zwraca
Wartość zwracana z delegata wywoływanego lub null
jeśli delegat nie ma wartości zwracanej.
Uwagi
W WPF tylko wątek, który utworzył obiekt DispatcherObject , może uzyskać dostęp do tego obiektu. Na przykład wątek w tle, który jest odłączony od głównego wątku interfejsu użytkownika, nie może zaktualizować zawartości elementu Button utworzonego w wątku interfejsu użytkownika. Aby wątek w tle uzyskiwał dostęp do właściwości Content elementu Button, wątek w tle musi delegować pracę do skojarzonego Dispatcher z wątkiem interfejsu użytkownika. Jest to realizowane przy użyciu polecenia Invoke lub BeginInvoke. Invoke jest synchroniczna i BeginInvoke jest asynchroniczna. Operacja jest dodawana do kolejki zdarzeń obiektu Dispatcher w określonym DispatcherPriorityobiekcie .
Invoke jest operacją synchroniczną; w związku z tym kontrolka nie powróci do obiektu wywołującego dopiero po powrocie wywołania zwrotnego.
Dotyczy
Invoke(Action, DispatcherPriority)
Wykonuje określony Action synchronicznie z określonym priorytetem w wątku, z który Dispatcher jest skojarzony.
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
Delegat do wywołania za pośrednictwem dyspozytora.
- priority
- DispatcherPriority
Priorytet określający kolejność wywoływania określonego wywołania zwrotnego względem innych oczekujących operacji w obiekcie Dispatcher.
Dotyczy
Invoke(Action)
Wykonuje określony Action synchronicznie w wątku, z który Dispatcher jest skojarzony.
public:
void Invoke(Action ^ callback);
public void Invoke (Action callback);
member this.Invoke : Action -> unit
Public Sub Invoke (callback As Action)
Parametry
- callback
- Action
Delegat do wywołania za pośrednictwem dyspozytora.
Uwagi
Domyślny priorytet to DispatcherPriority.Send
.
Dotyczy
Invoke(Delegate, DispatcherPriority, Object[])
Wykonuje określony delegat z określonym priorytetem z określonymi argumentami synchronicznie w wątku, z który Dispatcher jest skojarzony.
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
Delegat do metody, która przyjmuje parametry określone w args
elemecie , który jest wypychany do kolejki zdarzeń Dispatcher .
- priority
- DispatcherPriority
Priorytet, z którym jest wywoływana określona metoda, względem innych oczekujących operacji w kolejce zdarzeń Dispatcher .
- args
- Object[]
Tablica obiektów, które mają być przekazywane jako argumenty do danej metody. Może to być null
.
Zwraca
Wartość zwracana z delegata wywoływanego lub null
jeśli delegat nie ma wartości zwracanej.
Uwagi
W WPF tylko wątek, który utworzył obiekt DispatcherObject , może uzyskać dostęp do tego obiektu. Na przykład wątek w tle, który jest odłączony od głównego wątku interfejsu użytkownika, nie może zaktualizować zawartości elementu Button utworzonego w wątku interfejsu użytkownika. Aby wątek w tle uzyskiwał dostęp do właściwości Content elementu Button, wątek w tle musi delegować pracę do skojarzonego Dispatcher z wątkiem interfejsu użytkownika. Jest to realizowane przy użyciu polecenia Invoke lub BeginInvoke. Invoke jest synchroniczna i BeginInvoke jest asynchroniczna. Operacja jest dodawana do kolejki zdarzeń obiektu Dispatcher w określonym DispatcherPriorityobiekcie .
Invoke jest operacją synchroniczną; w związku z tym kontrolka nie powróci do obiektu wywołującego dopiero po powrocie wywołania zwrotnego.
Dotyczy
Invoke<TResult>(Func<TResult>)
Wykonuje określony Func<TResult> synchronicznie w wątku, z który Dispatcher jest skojarzony.
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
Zwracany typ wartości określonego delegata.
Parametry
- callback
- Func<TResult>
Delegat do wywołania za pośrednictwem dyspozytora.
Zwraca
Wartość zwrócona przez callback
.
Dotyczy
Invoke<TResult>(Func<TResult>, DispatcherPriority)
Wykonuje określony Func<TResult> synchronicznie z określonym priorytetem w wątku, z który Dispatcher jest skojarzony.
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
Zwracany typ wartości określonego delegata.
Parametry
- callback
- Func<TResult>
Delegat do wywołania za pośrednictwem dyspozytora.
- priority
- DispatcherPriority
Priorytet określający kolejność wywoływania określonego wywołania zwrotnego względem innych oczekujących operacji w obiekcie Dispatcher.
Zwraca
Wartość zwrócona przez callback
.
Dotyczy
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)
Wykonuje określony Func<TResult> synchronicznie z określonym priorytetem w wątku, z który Dispatcher jest skojarzony.
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
Zwracany typ wartości określonego delegata.
Parametry
- callback
- Func<TResult>
Delegat do wywołania za pośrednictwem dyspozytora.
- priority
- DispatcherPriority
Priorytet określający kolejność wywoływania określonego wywołania zwrotnego względem innych oczekujących operacji w obiekcie Dispatcher.
- cancellationToken
- CancellationToken
Obiekt wskazujący, czy anulować operację.
Zwraca
Wartość zwrócona przez callback
.
Wyjątki
Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwracanym zadaniu.
Dotyczy
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)
Wykonuje określony Func<TResult> synchronicznie z określonym priorytetem w wątku, z który Dispatcher jest skojarzony.
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
Zwracany typ wartości określonego delegata.
Parametry
- callback
- Func<TResult>
Delegat do wywołania za pośrednictwem dyspozytora.
- priority
- DispatcherPriority
Priorytet określający kolejność wywoływania określonego wywołania zwrotnego względem innych oczekujących operacji w obiekcie Dispatcher.
- cancellationToken
- CancellationToken
Obiekt wskazujący, czy anulować operację.
- timeout
- TimeSpan
Maksymalny czas oczekiwania na rozpoczęcie operacji. Po rozpoczęciu operacji zostanie ona ukończona przed zwróceniem tej metody. Aby określić nieskończone oczekiwanie, użyj wartości -1. W wywołaniu tego samego wątku każda inna wartość ujemna jest konwertowana na -1, co powoduje nieskończone oczekiwanie. W wywołaniu międzywątkowa każda inna wartość ujemna ArgumentOutOfRangeExceptionzgłasza wartość .
Zwraca
Wartość zwrócona przez callback
.
Wyjątki
callback
to null
.
timeout
jest liczbą ujemną inną niż -1, a metoda została wywołana między wątkami.
priority
nie jest prawidłowym priorytetem.
Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwracanym zadaniu.