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.

C#
// 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));
}

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.

C#
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg, params object[] args);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

Wykonuje określonego delegata o określonym priorytetzie z określonym argumentem synchronicznie w wątku Dispatcher skojarzonym z.

C#
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

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

Wykonuje określonego delegata o określonym priorytetzie z określonymi argumentami synchronicznie w wątku Dispatcher skojarzonym z.

C#
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg, params object[] args);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Wykonuje określony Action synchronicznie określony priorytet w wątku Dispatcher skojarzonym z nim.

C#
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

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.

C#
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Invoke(DispatcherPriority, Delegate, Object)

Wykonuje określonego delegata o określonym priorytetzie z określonym argumentem synchronicznie w wątku Dispatcher skojarzonym z.

C#
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

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.

C#
public object Invoke (Delegate method, TimeSpan timeout, System.Windows.Threading.DispatcherPriority priority, params object[] args);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

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.

C#
public object Invoke (Delegate method, TimeSpan timeout, params object[] args);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Invoke(Action, DispatcherPriority, CancellationToken)

Wykonuje określony Action synchronicznie określony priorytet w wątku Dispatcher skojarzonym z nim.

C#
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken 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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Invoke(DispatcherPriority, Delegate)

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

C#
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method);

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.

C#
// 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));
}

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Invoke(Delegate, Object[])

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

C#
public object Invoke (Delegate method, params object[] args);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Invoke(Action, DispatcherPriority)

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

C#
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Invoke(Action)

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

C#
public void Invoke (Action callback);

Parametry

callback
Action

Delegat do wywołania za pośrednictwem dyspozytora.

Uwagi

Domyślny priorytet to DispatcherPriority.Send.

Dotyczy

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

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.

C#
public object Invoke (Delegate method, System.Windows.Threading.DispatcherPriority priority, params object[] args);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Invoke<TResult>(Func<TResult>)

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

C#
public TResult Invoke<TResult> (Func<TResult> callback);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

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

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

C#
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

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.

C#
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

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.

C#
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9