Dispatcher.Invoke Метод

Определение

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

Перегрузки

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

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

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

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

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

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

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

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

Invoke(DispatcherPriority, TimeSpan, Delegate)

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

Invoke(DispatcherPriority, Delegate, Object)

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

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

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

Invoke(Delegate, TimeSpan, Object[])

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

Invoke(Action, DispatcherPriority, CancellationToken)

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

Invoke(DispatcherPriority, Delegate)

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

Invoke(Delegate, Object[])

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

Invoke(Action, DispatcherPriority)

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

Invoke(Action)

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

Invoke(Delegate, DispatcherPriority, Object[])

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

Invoke<TResult>(Func<TResult>)

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

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

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

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

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

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

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

Примеры

В следующем примере делегат помещается в объект Dispatcher при Normal помощи Invoke .

// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    // Place delegate on the Dispatcher.
    this.Dispatcher.Invoke(DispatcherPriority.Normal,
        new TimerDispatcherDelegate(TimerWorkItem));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
    ' Place delegate on the Dispatcher.
    Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub

Комментарии

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

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

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

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

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object, ParamArray args As Object()) As Object

Параметры

priority
DispatcherPriority

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

timeout
TimeSpan

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

method
Delegate

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

arg
Object

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

args
Object[]

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

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

Object

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

Атрибуты

Исключения

priority равно Inactive.

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

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

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

Комментарии

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

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

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

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

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

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

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object) As Object

Параметры

priority
DispatcherPriority

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

timeout
TimeSpan

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

method
Delegate

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

arg
Object

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

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

Object

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

Атрибуты

Исключения

priority равно Inactive.

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

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

Комментарии

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

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

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

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

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

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

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object, ParamArray args As Object()) As Object

Параметры

priority
DispatcherPriority

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

method
Delegate

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

arg
Object

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

args
Object[]

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

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

Object

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

Атрибуты

Исключения

priority равно Inactive.

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

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

Комментарии

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

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

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

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

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

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

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan)

Параметры

callback
Action

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

priority
DispatcherPriority

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

cancellationToken
CancellationToken

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

timeout
TimeSpan

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

Исключения

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

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

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

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

Invoke(DispatcherPriority, TimeSpan, Delegate)

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

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate) As Object

Параметры

priority
DispatcherPriority

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

timeout
TimeSpan

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

method
Delegate

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

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

Object

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

Атрибуты

Исключения

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

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

priority равно Inactive.

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

Комментарии

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

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

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

Invoke(DispatcherPriority, Delegate, Object)

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

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object) As Object

Параметры

priority
DispatcherPriority

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

method
Delegate

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

arg
Object

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

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

Object

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

Атрибуты

Исключения

priority равно Inactive.

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

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

Комментарии

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

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

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

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

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

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

public:
 System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, TimeSpan timeout, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * TimeSpan * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, priority As DispatcherPriority, ParamArray args As Object()) As Object

Параметры

method
Delegate

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

timeout
TimeSpan

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

priority
DispatcherPriority

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

args
Object[]

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

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

Object

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

Исключения

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

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

priority равно Inactive.

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

Комментарии

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

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

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

Invoke(Delegate, TimeSpan, Object[])

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

public:
 System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, TimeSpan timeout, params object[] args);
member this.Invoke : Delegate * TimeSpan * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, ParamArray args As Object()) As Object

Параметры

method
Delegate

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

timeout
TimeSpan

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

args
Object[]

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

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

Object

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

Исключения

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

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

Комментарии

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

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

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

Invoke(Action, DispatcherPriority, CancellationToken)

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

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken)

Параметры

callback
Action

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

priority
DispatcherPriority

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

cancellationToken
CancellationToken

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

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

Invoke(DispatcherPriority, Delegate)

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

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate) As Object

Параметры

priority
DispatcherPriority

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

method
Delegate

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

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

Object

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

Атрибуты

Исключения

priority равно Inactive.

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

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

Примеры

В следующем примере делегат помещается в объект Dispatcher при Normal помощи Invoke .

// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    // Place delegate on the Dispatcher.
    this.Dispatcher.Invoke(DispatcherPriority.Normal,
        new TimerDispatcherDelegate(TimerWorkItem));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
    ' Place delegate on the Dispatcher.
    Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub

Комментарии

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

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

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

Invoke(Delegate, Object[])

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

public:
 System::Object ^ Invoke(Delegate ^ method, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, params object[] args);
member this.Invoke : Delegate * obj[] -> obj
Public Function Invoke (method As Delegate, ParamArray args As Object()) As Object

Параметры

method
Delegate

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

args
Object[]

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

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

Object

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

Комментарии

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

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

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

Invoke(Action, DispatcherPriority)

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

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority)

Параметры

callback
Action

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

priority
DispatcherPriority

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

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

Invoke(Action)

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

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

Параметры

callback
Action

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

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

Invoke(Delegate, DispatcherPriority, Object[])

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

public:
 System::Object ^ Invoke(Delegate ^ method, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, priority As DispatcherPriority, ParamArray args As Object()) As Object

Параметры

method
Delegate

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

priority
DispatcherPriority

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

args
Object[]

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

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

Object

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

Комментарии

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

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

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

Invoke<TResult>(Func<TResult>)

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

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback);
public TResult Invoke<TResult> (Func<TResult> callback);
member this.Invoke : Func<'Result> -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult)) As TResult

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

TResult

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

Параметры

callback
Func<TResult>

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

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

TResult

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

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

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

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

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority) As TResult

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

TResult

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

Параметры

callback
Func<TResult>

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

priority
DispatcherPriority

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

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

TResult

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

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

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

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

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken) As TResult

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

TResult

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

Параметры

callback
Func<TResult>

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

priority
DispatcherPriority

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

cancellationToken
CancellationToken

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

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

TResult

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

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

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

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

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan) As TResult

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

TResult

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

Параметры

callback
Func<TResult>

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

priority
DispatcherPriority

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

cancellationToken
CancellationToken

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

timeout
TimeSpan

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

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

TResult

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

Исключения

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

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

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

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