Поделиться через


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>

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

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

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 не является допустимым приоритетом.

Маркер отмены был отменен. Это исключение сохраняется в возвращаемой задаче.

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