Udostępnij za pośrednictwem


Dispatcher.Invoke Metoda

Definicja

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 argsobiekcie , 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 argsobiekcie , 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 argselemecie , 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 argselemecie , 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

TResult

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

TResult

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

TResult

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

TResult

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.

Dotyczy