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[]
Массив объектов, передаваемых в качестве аргументов указанному методу.
Возвращаемое значение
Значение, возвращаемое вызываемым делегатом, или 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
, если аргументы не требуются.
Возвращаемое значение
Значение, возвращаемое вызываемым делегатом, или 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[]
Массив объектов, передаваемых в качестве аргументов указанному методу.
Возвращаемое значение
Значение, возвращаемое вызываемым делегатом, или 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.
Возвращаемое значение
Значение, возвращаемое вызываемым делегатом, или 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
Объект, передаваемый в качестве аргумента указанному методу.
Возвращаемое значение
Значение, возвращаемое вызываемым делегатом, или 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
.
Возвращаемое значение
Значение, возвращаемое вызываемым делегатом, или 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
если аргументы не требуются.
Возвращаемое значение
Значение, возвращаемое вызываемым делегатом, или 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.
Возвращаемое значение
Значение, возвращаемое вызываемым делегатом, или 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
.
Возвращаемое значение
Значение, возвращаемое вызываемым делегатом, или 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
.
Возвращаемое значение
Значение, возвращаемое вызываемым делегатом, или 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
не является допустимым приоритетом.