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. |
Примеры
В следующем примере делегат помещает в с DispatcherNormal помощью 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 объект . Например, фоновый поток, отколовшийся от потока пользовательского интерфейса main, не может обновить содержимое объекта , созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток был доступ к свойству ButtonContent объекта , фоновый поток должен делегировать работу объекту , Dispatcher связанному с потоком пользовательского интерфейса. Для этого используется или InvokeBeginInvoke. Invoke является синхронным и BeginInvoke асинхронным. Операция добавляется в очередь событий объекта в указанном DispatcherPriorityобъекте Dispatcher .
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 объект . Например, фоновый поток, отключающийся от потока пользовательского интерфейса main, не может обновить содержимоеButton, созданное в потоке пользовательского интерфейса. Чтобы фоновый поток получить доступ к свойству ButtonContent объекта , фоновый поток должен делегировать работу объекту , Dispatcher связанному с потоком пользовательского интерфейса. Для этого используется или InvokeBeginInvoke. Invoke является синхронным и BeginInvoke асинхронным. Операция добавляется в очередь событий объекта в указанном DispatcherPriorityобъекте Dispatcher .
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 объект . Например, фоновый поток, отключающийся от потока пользовательского интерфейса main, не может обновить содержимоеButton, созданное в потоке пользовательского интерфейса. Чтобы фоновый поток получить доступ к свойству ButtonContent объекта , фоновый поток должен делегировать работу объекту , Dispatcher связанному с потоком пользовательского интерфейса. Для этого используется или InvokeBeginInvoke. Invoke является синхронным и BeginInvoke асинхронным. Операция добавляется в очередь событий объекта в указанном DispatcherPriorityобъекте Dispatcher .
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 объект . Например, фоновый поток, отключающийся от потока пользовательского интерфейса main, не может обновить содержимоеButton, созданное в потоке пользовательского интерфейса. Чтобы фоновый поток получить доступ к свойству ButtonContent объекта , фоновый поток должен делегировать работу объекту , Dispatcher связанному с потоком пользовательского интерфейса. Для этого используется или InvokeBeginInvoke. Invoke является синхронным и BeginInvoke асинхронным. Операция добавляется в очередь событий объекта в указанном DispatcherPriorityобъекте Dispatcher .
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 объект . Например, фоновый поток, отколовшийся от потока пользовательского интерфейса main, не может обновить содержимое объекта , созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток был доступ к свойству ButtonContent объекта , фоновый поток должен делегировать работу объекту , Dispatcher связанному с потоком пользовательского интерфейса. Для этого используется или InvokeBeginInvoke. Invoke является синхронным и BeginInvoke асинхронным. Операция добавляется в очередь событий объекта в указанном DispatcherPriorityобъекте Dispatcher .
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 объект . Например, фоновый поток, отколовшийся от потока пользовательского интерфейса main, не может обновить содержимое объекта , созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток был доступ к свойству ButtonContent объекта , фоновый поток должен делегировать работу объекту , Dispatcher связанному с потоком пользовательского интерфейса. Для этого используется или InvokeBeginInvoke. Invoke является синхронным и BeginInvoke асинхронным. Операция добавляется в очередь событий объекта в указанном DispatcherPriorityобъекте Dispatcher .
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 объект . Например, фоновый поток, отколовшийся от потока пользовательского интерфейса main, не может обновить содержимое объекта , созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток был доступ к свойству ButtonContent объекта , фоновый поток должен делегировать работу объекту , Dispatcher связанному с потоком пользовательского интерфейса. Для этого используется или InvokeBeginInvoke. Invoke является синхронным и BeginInvoke асинхронным. Операция добавляется в очередь событий объекта в указанном DispatcherPriorityобъекте Dispatcher .
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 объект . Например, фоновый поток, отколовшийся от потока пользовательского интерфейса main, не может обновить содержимое объекта , созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток был доступ к свойству ButtonContent объекта , фоновый поток должен делегировать работу объекту , Dispatcher связанному с потоком пользовательского интерфейса. Для этого используется или InvokeBeginInvoke. Invoke является синхронным и BeginInvoke асинхронным. Операция добавляется в очередь событий объекта в указанном DispatcherPriorityобъекте Dispatcher .
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
.
Примеры
В следующем примере делегат помещает в с DispatcherNormal помощью 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 объект . Например, фоновый поток, отколовшийся от потока пользовательского интерфейса main, не может обновить содержимое объекта , созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток был доступ к свойству ButtonContent объекта , фоновый поток должен делегировать работу объекту , Dispatcher связанному с потоком пользовательского интерфейса. Для этого используется или InvokeBeginInvoke. Invoke является синхронным и BeginInvoke асинхронным. Операция добавляется в очередь событий объекта в указанном DispatcherPriorityобъекте Dispatcher .
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 объект . Например, фоновый поток, отколовшийся от потока пользовательского интерфейса main, не может обновить содержимое объекта , созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток был доступ к свойству ButtonContent объекта , фоновый поток должен делегировать работу объекту , Dispatcher связанному с потоком пользовательского интерфейса. Для этого используется или InvokeBeginInvoke. Invoke является синхронным и BeginInvoke асинхронным. Операция добавляется в очередь событий объекта в указанном DispatcherPriorityобъекте Dispatcher .
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 объект . Например, фоновый поток, отколовшийся от потока пользовательского интерфейса main, не может обновить содержимое объекта , созданного Button в потоке пользовательского интерфейса. Чтобы фоновый поток был доступ к свойству ButtonContent объекта , фоновый поток должен делегировать работу объекту , Dispatcher связанному с потоком пользовательского интерфейса. Для этого используется или InvokeBeginInvoke. Invoke является синхронным и BeginInvoke асинхронным. Операция добавляется в очередь событий объекта в указанном DispatcherPriorityобъекте Dispatcher .
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>
Делегат, вызываемый с помощью диспетчера.
Возвращаемое значение
Значение, возвращаемое 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в .
Возвращаемое значение
Значение, возвращаемое 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
Объект, указывающий, следует ли отменить операцию.
Возвращаемое значение
Значение, возвращаемое 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.
Возвращаемое значение
Значение, возвращаемое callback
.
Исключения
callback
имеет значение null
.
timeout
— отрицательное число, отличное от -1, и метод был вызван в потоках.
priority
не является допустимым приоритетом.
Маркер отмены был отменен. Это исключение сохраняется в возвращаемой задаче.