Dispatcher.Invoke Метод

Определение

Выполняет заданный делегат синхронно, в потоке, с которым связан Dispatcher.

Перегрузки

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

Выполняет указанный делегат синхронно, с заданными приоритетом и аргументами, в потоке, с которым связан Dispatcher.

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

Выполняет указанный делегат синхронно, с заданными приоритетом и аргументом, в потоке, с которым связан Dispatcher.

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

Выполняет указанный делегат синхронно, с заданными приоритетом и аргументами, в потоке, с которым связан Dispatcher.

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Выполняет указанный объект Action синхронно с заданным приоритетом в потоке, с которым связан Dispatcher.

Invoke(DispatcherPriority, TimeSpan, Delegate)

Выполняет указанный делегат асинхронно, с заданными приоритетом и значением таймаута, в потоке, в котором был создан объект Dispatcher.

Invoke(DispatcherPriority, Delegate, Object)

Выполняет указанный делегат синхронно, с заданными приоритетом и аргументом, в потоке, с которым связан Dispatcher.

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

Выполняет указанный делегат в течение заданного промежутка времени, синхронно, с заданными приоритетом и аргументами, в потоке, с которым связан Dispatcher.

Invoke(Delegate, TimeSpan, Object[])

Выполняет указанный делегат в течение заданного промежутка времени, синхронно, с заданными приоритетом и аргументами, в потоке, с которым связан Dispatcher.

Invoke(Action, DispatcherPriority, CancellationToken)

Выполняет указанный объект Action синхронно с заданным приоритетом в потоке, с которым связан Dispatcher.

Invoke(DispatcherPriority, Delegate)

Выполняет указанный делегат синхронно по указанному приоритету в потоке, Dispatcher с которым связан этот делегат.

Invoke(Delegate, Object[])

Выполняет указанный делегат синхронно с заданными аргументами в потоке, с которым связан объект Dispatcher.

Invoke(Action, DispatcherPriority)

Выполняет указанный объект Action синхронно с заданным приоритетом в потоке, с которым связан Dispatcher.

Invoke(Action)

Выполняет заданный объект Action синхронно в потоке, с которым связан Dispatcher.

Invoke(Delegate, DispatcherPriority, Object[])

Выполняет указанный делегат синхронно, с заданными приоритетом и аргументами, в потоке, с которым связан Dispatcher.

Invoke<TResult>(Func<TResult>)

Выполняет заданный объект Func<TResult> синхронно в потоке, с которым связан Dispatcher.

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

Выполняет указанный объект Func<TResult> синхронно с заданным приоритетом в потоке, с которым связан Dispatcher.

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

Выполняет указанный объект Func<TResult> синхронно с заданным приоритетом в потоке, с которым связан Dispatcher.

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

Выполняет указанный объект Func<TResult> синхронно с заданным приоритетом в потоке, с которым связан Dispatcher.

Примеры

В следующем примере делегат помещает делегат на Dispatcher Normal использование 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

Комментарии

В WPF доступ к объекту DispatcherObject может получить только созданный поток. Например, фоновый поток, отколовшийся от основного потока пользовательского интерфейса, не может обновить содержимое созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток получить доступ к свойству Content объекта Button, фоновый поток должен делегировать работу Dispatcher связанному с потоком пользовательского интерфейса. Это достигается с помощью любого Invoke или BeginInvoke. Invoke является синхронным и BeginInvoke является асинхронным. Операция добавляется в очередь событий указанного Dispatcher DispatcherPriorityобъекта.

Invoke является синхронной операцией; таким образом, элемент управления не возвращается вызывающей объекту до тех пор, пока не будет возвращен обратный вызов.

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

Выполняет указанный делегат синхронно, с заданными приоритетом и аргументами, в потоке, с которым связан Dispatcher.

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

Параметры

priority
DispatcherPriority

Приоритет относительно других ожидающих операций в Dispatcher очереди событий, с которым вызывается указанный метод.

timeout
TimeSpan

Максимальное время ожидания начала операции. После запуска операции она завершится до возврата этого метода. Чтобы указать бесконечное ожидание, используйте значение -1. В вызове одного потока любое другое отрицательное значение преобразуется в -1, что приводит к бесконечному ожиданию. В вызове между потоками любое другое отрицательное значение вызывает ArgumentOutOfRangeExceptionисключение .

method
Delegate

Делегат метода с несколькими аргументами, помещенный в очередь событий Dispatcher.

arg
Object

Объект, передаваемый в качестве аргумента указанному методу.

args
Object[]

Массив объектов, передаваемых в качестве аргументов указанному методу.

Возвращаемое значение

Object

Значение, возвращаемое вызываемым делегатом, или null, если делегат не возвращает никакого значения.

Атрибуты

Исключения

priority равно Inactive.

priority не является допустимым DispatcherPriority.

method имеет значение null.

timeout — отрицательное число, отличное от -1, и этот метод был вызван в потоках.

Комментарии

arg может быть null , если аргумент не нужен.

В WPF доступ к объекту DispatcherObject может получить только созданный поток. Например, фоновый поток, который отключается из основного потока пользовательского интерфейса, не может обновить содержимое созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток получить доступ к свойству Content объекта Button, фоновый поток должен делегировать работу связанному Dispatcher с потоком пользовательского интерфейса. Это достигается с помощью либоInvoke.BeginInvoke Invoke является синхронным и BeginInvoke является асинхронным. Операция добавляется в очередь событий указанного Dispatcher объекта DispatcherPriority.

Invoke является синхронной операцией; Таким образом, управление не вернется в вызывающий объект до тех пор, пока обратный вызов не возвращается.

Применяется к

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

Выполняет указанный делегат синхронно, с заданными приоритетом и аргументом, в потоке, с которым связан Dispatcher.

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

Параметры

priority
DispatcherPriority

Приоритет относительно других ожидающих операций в Dispatcher очереди событий, с которым вызывается указанный метод.

timeout
TimeSpan

Максимальное время ожидания начала операции. После запуска операции она завершится до возврата этого метода. Чтобы указать бесконечное ожидание, используйте значение -1. В вызове одного потока любое другое отрицательное значение преобразуется в -1, что приводит к бесконечному ожиданию. В вызове между потоками любое другое отрицательное значение вызывает ArgumentOutOfRangeExceptionисключение .

method
Delegate

Делегат метода с несколькими аргументами, помещенный в очередь событий Dispatcher.

arg
Object

Объект, передаваемый в качестве аргумента указанному методу. Это может быть значение null, если аргументы не требуются.

Возвращаемое значение

Object

Значение, возвращаемое вызываемым делегатом, или null, если делегат не возвращает никакого значения.

Атрибуты

Исключения

priority равно Inactive.

priority не является допустимым приоритетом.

method имеет значение null.

Комментарии

arg может быть null , если аргумент не нужен

В WPF доступ к объекту DispatcherObject может получить только созданный поток. Например, фоновый поток, который отключается из основного потока пользовательского интерфейса, не может обновить содержимое созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток получить доступ к свойству Content объекта Button, фоновый поток должен делегировать работу связанному Dispatcher с потоком пользовательского интерфейса. Это достигается с помощью либоInvoke.BeginInvoke Invoke является синхронным и BeginInvoke является асинхронным. Операция добавляется в очередь событий указанного Dispatcher объекта DispatcherPriority.

Invoke является синхронной операцией; Таким образом, управление не вернется в вызывающий объект до тех пор, пока обратный вызов не возвращается.

Применяется к

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

Выполняет указанный делегат синхронно, с заданными приоритетом и аргументами, в потоке, с которым связан Dispatcher.

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

Параметры

priority
DispatcherPriority

Приоритет относительно других ожидающих операций в Dispatcher очереди событий, с которым вызывается указанный метод.

method
Delegate

Делегат метода с несколькими аргументами, помещенный в очередь событий Dispatcher.

arg
Object

Объект, передаваемый в качестве аргумента указанному методу.

args
Object[]

Массив объектов, передаваемых в качестве аргументов указанному методу.

Возвращаемое значение

Object

Значение, возвращаемое вызываемым делегатом, или null, если делегат не возвращает никакого значения.

Атрибуты

Исключения

priority равно Inactive.

priority не является допустимым приоритетом.

method имеет значение null.

Комментарии

arg может быть null , если аргумент не нужен

В WPF доступ к объекту DispatcherObject может получить только созданный поток. Например, фоновый поток, который отключается из основного потока пользовательского интерфейса, не может обновить содержимое созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток получить доступ к свойству Content объекта Button, фоновый поток должен делегировать работу связанному Dispatcher с потоком пользовательского интерфейса. Это достигается с помощью либоInvoke.BeginInvoke Invoke является синхронным и BeginInvoke является асинхронным. Операция добавляется в очередь событий указанного Dispatcher объекта DispatcherPriority.

Invoke является синхронной операцией; Таким образом, управление не вернется в вызывающий объект до тех пор, пока обратный вызов не возвращается.

Применяется к

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Выполняет указанный объект Action синхронно с заданным приоритетом в потоке, с которым связан Dispatcher.

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)

Параметры

callback
Action

Делегат действия для вызова через диспетчер.

priority
DispatcherPriority

Приоритет, определяющий порядок вызова указанного обратного вызова относительно других ожидающих операций в .Dispatcher

cancellationToken
CancellationToken

Объект, указывающий, следует ли отменить действие.

timeout
TimeSpan

Максимальное время ожидания начала операции. После запуска операции она завершится до возврата этого метода. Чтобы указать бесконечное ожидание, используйте значение -1. В вызове одного потока любое другое отрицательное значение преобразуется в -1, что приводит к бесконечному ожиданию. В вызове между потоками любое другое отрицательное значение вызывает ArgumentOutOfRangeExceptionисключение .

Исключения

callback имеет значение null.

timeout — отрицательное число, отличное от -1, и этот метод был вызван в потоках.

priority не является допустимым приоритетом.

Применяется к

Invoke(DispatcherPriority, TimeSpan, Delegate)

Выполняет указанный делегат асинхронно, с заданными приоритетом и значением таймаута, в потоке, в котором был создан объект Dispatcher.

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

Параметры

priority
DispatcherPriority

Приоритет относительно других ожидающих операций в Dispatcher очереди событий, с которым вызывается указанный метод.

timeout
TimeSpan

Максимальное время ожидания начала операции. После запуска операции она завершится до возврата этого метода. Чтобы указать бесконечное ожидание, используйте значение -1. В вызове одного потока любое другое отрицательное значение преобразуется в -1, что приводит к бесконечному ожиданию. В вызове между потоками любое другое отрицательное значение вызывает ArgumentOutOfRangeExceptionисключение .

method
Delegate

Делегат метода без аргументов, помещенный в очередь событий Dispatcher.

Возвращаемое значение

Object

Значение, возвращаемое вызываемым делегатом, или null, если делегат не возвращает никакого значения.

Атрибуты

Исключения

method имеет значение null.

timeout — отрицательное число, отличное от -1, и этот метод был вызван в потоках.

priority равно Inactive.

priority не является допустимым приоритетом.

Комментарии

В WPF доступ к объекту DispatcherObject может получить только созданный поток. Например, фоновый поток, который отключается из основного потока пользовательского интерфейса, не может обновить содержимое созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток получить доступ к свойству Content объекта Button, фоновый поток должен делегировать работу связанному Dispatcher с потоком пользовательского интерфейса. Это достигается с помощью либоInvoke.BeginInvoke Invoke является синхронным и BeginInvoke является асинхронным. Операция добавляется в очередь событий указанного Dispatcher объекта DispatcherPriority.

Invoke является синхронной операцией; Таким образом, управление не вернется в вызывающий объект до тех пор, пока обратный вызов не возвращается.

Применяется к

Invoke(DispatcherPriority, Delegate, Object)

Выполняет указанный делегат синхронно, с заданными приоритетом и аргументом, в потоке, с которым связан Dispatcher.

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

Параметры

priority
DispatcherPriority

Приоритет относительно других ожидающих операций в Dispatcher очереди событий, с которым вызывается указанный метод.

method
Delegate

Делегат метода с одним аргументом, помещенный в очередь событий Dispatcher.

arg
Object

Объект, передаваемый в качестве аргумента указанному методу.

Возвращаемое значение

Object

Значение, возвращаемое вызываемым делегатом, или null, если делегат не возвращает никакого значения.

Атрибуты

Исключения

priority равно Inactive.

priority не является допустимым приоритетом.

method имеет значение null.

Комментарии

arg может быть null , если аргумент не нужен

В WPF доступ к объекту DispatcherObject может получить только созданный поток. Например, фоновый поток, который отключается из основного потока пользовательского интерфейса, не может обновить содержимое созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток получить доступ к свойству Content объекта Button, фоновый поток должен делегировать работу связанному Dispatcher с потоком пользовательского интерфейса. Это достигается с помощью либоInvoke.BeginInvoke Invoke является синхронным и BeginInvoke является асинхронным. Операция добавляется в очередь событий указанного Dispatcher объекта DispatcherPriority.

Invoke является синхронной операцией; Таким образом, управление не вернется в вызывающий объект до тех пор, пока обратный вызов не возвращается.

Применяется к

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

Выполняет указанный делегат в течение заданного промежутка времени, синхронно, с заданными приоритетом и аргументами, в потоке, с которым связан Dispatcher.

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

Параметры

method
Delegate

Делегат метода с параметрами, указанными в args, который помещен в очередь событий Dispatcher.

timeout
TimeSpan

Максимальное время ожидания начала операции. После запуска операции она завершится до возврата этого метода. Чтобы указать бесконечное ожидание, используйте значение -1. В вызове одного потока любое другое отрицательное значение преобразуется в -1, что приводит к бесконечному ожиданию. В вызове между потоками любое другое отрицательное значение вызывает ArgumentOutOfRangeExceptionисключение .

priority
DispatcherPriority

Приоритет относительно других ожидающих операций в Dispatcher очереди событий, с которым вызывается указанный метод.

args
Object[]

Массив объектов, передаваемых в качестве аргументов указанному методу. Может иметь значение null.

Возвращаемое значение

Object

Значение, возвращаемое вызываемым делегатом, или null, если делегат не возвращает никакого значения.

Исключения

method имеет значение null.

timeout — отрицательное число, отличное от -1, и этот метод был вызван в потоках.

priority равно Inactive.

priority не является допустимым приоритетом.

Комментарии

В WPF доступ к объекту DispatcherObject может получить только созданный поток. Например, фоновый поток, который отключается из основного потока пользовательского интерфейса, не может обновить содержимое созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток получить доступ к свойству Content объекта Button, фоновый поток должен делегировать работу связанному Dispatcher с потоком пользовательского интерфейса. Это достигается с помощью либоInvoke.BeginInvoke Invoke является синхронным и BeginInvoke является асинхронным. Операция добавляется в очередь событий указанного Dispatcher объекта DispatcherPriority.

Invoke является синхронной операцией; Таким образом, управление не вернется в вызывающий объект до тех пор, пока обратный вызов не возвращается.

Применяется к

Invoke(Delegate, TimeSpan, Object[])

Выполняет указанный делегат в течение заданного промежутка времени, синхронно, с заданными приоритетом и аргументами, в потоке, с которым связан Dispatcher.

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

Параметры

method
Delegate

Делегат метода с параметрами, указанными в args, который помещен в очередь событий Dispatcher.

timeout
TimeSpan

Максимальное время ожидания начала операции. Однако после запуска операции она завершится до возвращения этого метода. Чтобы указать бесконечное ожидание, используйте значение -1. В вызове того же потока любое другое отрицательное значение преобразуется в -1, что приводит к бесконечному ожиданию. При вызове между потоками любое другое отрицательное ArgumentOutOfRangeExceptionзначение вызывает исключение .

args
Object[]

Массив объектов, передаваемых в качестве аргументов указанному методу. Может быть, null если аргументы не требуются.

Возвращаемое значение

Object

Значение, возвращаемое вызываемым делегатом, или null, если делегат не возвращает никакого значения.

Исключения

method имеет значение null.

timeout — отрицательное число, отличное от -1, и вызывается в разных потоках.

Комментарии

В WPF доступ к объекту DispatcherObject может получить только созданный поток. Например, фоновый поток, отколовшийся от основного потока пользовательского интерфейса, не может обновить содержимое созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток получить доступ к свойству Content объекта Button, фоновый поток должен делегировать работу Dispatcher связанному с потоком пользовательского интерфейса. Это достигается с помощью любого Invoke или BeginInvoke. Invoke является синхронным и BeginInvoke является асинхронным. Операция добавляется в очередь событий указанного Dispatcher DispatcherPriorityобъекта.

Invoke является синхронной операцией; таким образом, элемент управления не возвращается в вызывающий объект до тех пор, пока не будет возвращен обратный вызов.

Применяется к

Invoke(Action, DispatcherPriority, CancellationToken)

Выполняет указанный объект Action синхронно с заданным приоритетом в потоке, с которым связан Dispatcher.

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)

Параметры

callback
Action

Делегат, вызываемый с помощью диспетчера.

priority
DispatcherPriority

Приоритет, определяющий порядок, в котором вызывается указанный обратный вызов относительно других ожидающих операций в .Dispatcher

cancellationToken
CancellationToken

Объект, указывающий, следует ли отменить действие.

Применяется к

Invoke(DispatcherPriority, Delegate)

Выполняет указанный делегат синхронно по указанному приоритету в потоке, Dispatcher с которым связан этот делегат.

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

Параметры

priority
DispatcherPriority

Приоритет, с которым вызывается указанный метод, относительно других ожидающих операций в Dispatcher очереди событий.

method
Delegate

Делегат метода без аргументов, помещенный в очередь событий Dispatcher.

Возвращаемое значение

Object

Значение, возвращаемое вызываемым делегатом, или null, если делегат не возвращает никакого значения.

Атрибуты

Исключения

priority равно Inactive.

priority не является допустимым приоритетом.

method имеет значение null.

Примеры

В следующем примере делегат помещает делегат на Dispatcher Normal использование 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

Комментарии

В WPF доступ к объекту DispatcherObject может получить только созданный поток. Например, фоновый поток, отколовшийся от основного потока пользовательского интерфейса, не может обновить содержимое созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток получить доступ к свойству Content объекта Button, фоновый поток должен делегировать работу Dispatcher связанному с потоком пользовательского интерфейса. Это достигается с помощью любого Invoke или BeginInvoke. Invoke является синхронным и BeginInvoke является асинхронным. Операция добавляется в очередь событий указанного Dispatcher DispatcherPriorityобъекта.

Invoke является синхронной операцией; таким образом, элемент управления не возвращается вызывающей объекту до тех пор, пока не будет возвращен обратный вызов.

Применяется к

Invoke(Delegate, Object[])

Выполняет указанный делегат синхронно с заданными аргументами в потоке, с которым связан объект Dispatcher.

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

Параметры

method
Delegate

Делегат метода с параметрами, указанными в args, который помещен в очередь событий Dispatcher.

args
Object[]

Массив объектов, передаваемых в качестве аргументов указанному методу. Может иметь значение null.

Возвращаемое значение

Object

Значение, возвращаемое вызываемым делегатом, или null, если делегат не возвращает никакого значения.

Комментарии

В WPF доступ к объекту DispatcherObject может получить только созданный поток. Например, фоновый поток, отколовшийся от основного потока пользовательского интерфейса, не может обновить содержимое созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток получить доступ к свойству Content объекта Button, фоновый поток должен делегировать работу Dispatcher связанному с потоком пользовательского интерфейса. Это достигается с помощью любого Invoke или BeginInvoke. Invoke является синхронным и BeginInvoke является асинхронным. Операция добавляется в очередь событий указанного Dispatcher DispatcherPriorityобъекта.

Invoke является синхронной операцией; таким образом, элемент управления не возвращается вызывающей объекту до тех пор, пока не будет возвращен обратный вызов.

Применяется к

Invoke(Action, DispatcherPriority)

Выполняет указанный объект Action синхронно с заданным приоритетом в потоке, с которым связан Dispatcher.

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)

Параметры

callback
Action

Делегат, вызываемый с помощью диспетчера.

priority
DispatcherPriority

Приоритет, определяющий порядок, в котором вызывается указанный обратный вызов относительно других ожидающих операций в .Dispatcher

Применяется к

Invoke(Action)

Выполняет заданный объект Action синхронно в потоке, с которым связан Dispatcher.

public:
 void Invoke(Action ^ callback);
public void Invoke (Action callback);
member this.Invoke : Action -> unit
Public Sub Invoke (callback As Action)

Параметры

callback
Action

Делегат, вызываемый с помощью диспетчера.

Комментарии

Приоритет по умолчанию — DispatcherPriority.Send.

Применяется к

Invoke(Delegate, DispatcherPriority, Object[])

Выполняет указанный делегат синхронно, с заданными приоритетом и аргументами, в потоке, с которым связан Dispatcher.

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

Параметры

method
Delegate

Делегат метода с параметрами, указанными в args, который помещен в очередь событий Dispatcher.

priority
DispatcherPriority

Приоритет, с которым вызывается указанный метод, относительно других ожидающих операций в Dispatcher очереди событий.

args
Object[]

Массив объектов, передаваемых в качестве аргументов указанному методу. Может иметь значение null.

Возвращаемое значение

Object

Значение, возвращаемое вызываемым делегатом, или null, если делегат не возвращает никакого значения.

Комментарии

В WPF доступ к объекту DispatcherObject может получить только созданный поток. Например, фоновый поток, отколовшийся от основного потока пользовательского интерфейса, не может обновить содержимое созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток получить доступ к свойству Content объекта Button, фоновый поток должен делегировать работу Dispatcher связанному с потоком пользовательского интерфейса. Это достигается с помощью любого Invoke или BeginInvoke. Invoke является синхронным и BeginInvoke является асинхронным. Операция добавляется в очередь событий указанного Dispatcher DispatcherPriorityобъекта.

Invoke является синхронной операцией; таким образом, элемент управления не возвращается вызывающей объекту до тех пор, пока не будет возвращен обратный вызов.

Применяется к

Invoke<TResult>(Func<TResult>)

Выполняет заданный объект Func<TResult> синхронно в потоке, с которым связан Dispatcher.

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

Параметры типа

TResult

Тип возвращаемого значения указанного делегата.

Параметры

callback
Func<TResult>

Делегат, вызываемый с помощью диспетчера.

Возвращаемое значение

TResult

Значение, возвращаемое callback.

Применяется к

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

Выполняет указанный объект Func<TResult> синхронно с заданным приоритетом в потоке, с которым связан Dispatcher.

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

Параметры типа

TResult

Тип возвращаемого значения указанного делегата.

Параметры

callback
Func<TResult>

Делегат, вызываемый с помощью диспетчера.

priority
DispatcherPriority

Приоритет, определяющий порядок вызова указанного обратного вызова относительно других ожидающих операций в .Dispatcher

Возвращаемое значение

TResult

Значение, возвращаемое callback.

Применяется к

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

Выполняет указанный объект Func<TResult> синхронно с заданным приоритетом в потоке, с которым связан Dispatcher.

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

Параметры типа

TResult

Тип возвращаемого значения указанного делегата.

Параметры

callback
Func<TResult>

Делегат, вызываемый с помощью диспетчера.

priority
DispatcherPriority

Приоритет, определяющий порядок вызова указанного обратного вызова относительно других ожидающих операций в .Dispatcher

cancellationToken
CancellationToken

Объект, указывающий, следует ли отменить операцию.

Возвращаемое значение

TResult

Значение, возвращаемое callback.

Применяется к

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

Выполняет указанный объект Func<TResult> синхронно с заданным приоритетом в потоке, с которым связан Dispatcher.

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

Параметры типа

TResult

Тип возвращаемого значения указанного делегата.

Параметры

callback
Func<TResult>

Делегат, вызываемый с помощью диспетчера.

priority
DispatcherPriority

Приоритет, определяющий порядок вызова указанного обратного вызова относительно других ожидающих операций в .Dispatcher

cancellationToken
CancellationToken

Объект, указывающий, следует ли отменить операцию.

timeout
TimeSpan

Максимальное время ожидания начала операции. После запуска операции она завершится до возврата этого метода. Чтобы указать бесконечное ожидание, используйте значение -1. В вызове одного потока любое другое отрицательное значение преобразуется в -1, что приводит к бесконечному ожиданию. В вызове между потоками любое другое отрицательное значение вызывает ArgumentOutOfRangeExceptionисключение .

Возвращаемое значение

TResult

Значение, возвращаемое callback.

Исключения

callback имеет значение null.

timeout — отрицательное число, отличное от -1, и метод был вызван в потоках.

priority не является допустимым приоритетом.

Применяется к