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ślony delegat z określonym priorytetem z określonymi argumentami synchronicznie w wątku, z który Dispatcher jest skojarzony.

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

Wykonuje określonego delegata z określonym priorytetem z określonym argumentem synchronicznie w wątku, z który Dispatcher jest skojarzony.

Invoke(DispatcherPriority, Delegate, Object, Object[])

Wykonuje określony delegat z określonym priorytetem z określonymi argumentami synchronicznie w wątku, z który Dispatcher jest skojarzony.

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Wykonuje określony Action synchronicznie z określonym priorytetem w wątku, z który Dispatcher jest skojarzony.

Invoke(DispatcherPriority, TimeSpan, Delegate)

Wykonuje określony delegat synchronicznie z określonym priorytetem i z określoną wartością limitu czasu dla wątku, który Dispatcher został utworzony.

Invoke(DispatcherPriority, Delegate, Object)

Wykonuje określonego delegata z określonym priorytetem z określonym argumentem synchronicznie w wątku, z który Dispatcher jest skojarzony.

Invoke(Delegate, TimeSpan, DispatcherPriority, Object[])

Wykonuje określonego delegata w wyznaczonym przedziale czasu w określonym priorytetycie z określonymi argumentami synchronicznie w wątku Dispatcher , z który jest skojarzony.

Invoke(Delegate, TimeSpan, Object[])

Wykonuje określonego delegata w wyznaczonym przedziale czasu w określonym priorytetycie z określonymi argumentami synchronicznie w wątku Dispatcher , z który jest skojarzony.

Invoke(Action, DispatcherPriority, CancellationToken)

Wykonuje określony Action synchronicznie z określonym priorytetem w wątku, z który Dispatcher jest skojarzony.

Invoke(DispatcherPriority, Delegate)

Wykonuje określony delegat synchronicznie z określonym priorytetem w wątku Dispatcher , z który jest skojarzony.

Invoke(Delegate, Object[])

Wykonuje określony delegat z określonymi argumentami synchronicznie w wątku, z który Dispatcher jest skojarzony.

Invoke(Action, DispatcherPriority)

Wykonuje określony Action synchronicznie z określonym priorytetem w wątku, z który Dispatcher jest skojarzony.

Invoke(Action)

Wykonuje określony Action synchronicznie w wątku, z który Dispatcher jest skojarzony.

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.

Invoke<TResult>(Func<TResult>)

Wykonuje określony Func<TResult> synchronicznie w wątku, z który Dispatcher jest skojarzony.

Invoke<TResult>(Func<TResult>, DispatcherPriority)

Wykonuje określony Func<TResult> synchronicznie z określonym priorytetem w wątku, z który Dispatcher jest skojarzony.

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.

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.

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.

Invoke(DispatcherPriority, TimeSpan, Delegate, Object, 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(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 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ść .

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

Object

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 element nie jest prawidłowym DispatcherPriorityelementem .

method to null.

timeout jest liczbą ujemną inną niż -1, a ta metoda została wywołana między wątkami.

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 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(DispatcherPriority, TimeSpan, Delegate, Object)

Wykonuje określonego delegata z określonym priorytetem z określonym argumentem synchronicznie w wątku, z który Dispatcher jest skojarzony.

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 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ść .

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

Object

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.

Uwagi

arg może być null , jeśli argument nie jest wymagany

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(DispatcherPriority, Delegate, Object, 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(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

Object

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.

Uwagi

arg może być null , jeśli argument nie jest wymagany

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, CancellationToken, TimeSpan)

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, 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 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ść .

Wyjątki

callback to null.

timeout jest liczbą ujemną inną niż -1, a ta metoda została wywołana między wątkami.

priority nie jest prawidłowym priorytetem.

Dotyczy

Invoke(DispatcherPriority, TimeSpan, Delegate)

Wykonuje określony delegat synchronicznie z określonym priorytetem i z określoną wartością limitu czasu dla 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 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ść .

method
Delegate

Delegat do metody, która nie przyjmuje żadnych argumentów, które są wypychane do kolejki zdarzeń Dispatcher .

Zwraca

Object

Wartość zwracana z delegata wywoływanego 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 między wątkami.

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 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(DispatcherPriority, Delegate, Object)

Wykonuje określonego delegata z określonym priorytetem z określonym argumentem synchronicznie w wątku, z który Dispatcher jest skojarzony.

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

Object

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.

Uwagi

arg może być null , jeśli argument nie jest wymagany

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, TimeSpan, DispatcherPriority, Object[])

Wykonuje określonego delegata w wyznaczonym przedziale czasu w określonym priorytetycie z określonymi argumentami synchronicznie w wątku Dispatcher , 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 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ść .

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

Object

Wartość zwracana z delegata wywoływanego 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 między wątkami.

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 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, TimeSpan, Object[])

Wykonuje określonego delegata w wyznaczonym przedziale czasu w określonym priorytetycie z określonymi argumentami synchronicznie w wątku Dispatcher , 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 rozpoczęcie operacji. Jednak 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ść .

args
Object[]

Tablica obiektów, które mają być przekazywane jako argumenty do danej metody. Może być, null jeśli nie są potrzebne żadne argumenty.

Zwraca

Object

Wartość zwracana z delegata wywoływanego 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 przez wątki.

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, CancellationToken)

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, 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ę.

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

Object

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

Object

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

Object

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.

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.

Dotyczy