Dispatcher.BeginInvoke Dispatcher.BeginInvoke Dispatcher.BeginInvoke Dispatcher.BeginInvoke Method

Определение

Выполняет делегат асинхронно, в потоке, с которым связан Dispatcher.Executes a delegate asynchronously on the thread the Dispatcher is associated with.

Перегрузки

BeginInvoke(Delegate, Object[]) BeginInvoke(Delegate, Object[]) BeginInvoke(Delegate, Object[]) BeginInvoke(Delegate, Object[])

Выполняет указанный делегат асинхронно с указанными аргументами в потоке, в котором был создан объект Dispatcher.Executes the specified delegate asynchronously with the specified arguments on the thread that the Dispatcher was created on.

BeginInvoke(DispatcherPriority, Delegate) BeginInvoke(DispatcherPriority, Delegate) BeginInvoke(DispatcherPriority, Delegate) BeginInvoke(DispatcherPriority, Delegate)

Выполняет указанный делегат асинхронно, с заданным приоритетом, в потоке, с которым связан Dispatcher.Executes the specified delegate asynchronously at the specified priority on the thread the Dispatcher is associated with.

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

Выполняет указанный делегат асинхронно, с заданными приоритетом и аргументами, в потоке, в котором был создан объект Dispatcher.Executes the specified delegate asynchronously with the specified arguments, at the specified priority, on the thread that the Dispatcher was created on.

BeginInvoke(DispatcherPriority, Delegate, Object) BeginInvoke(DispatcherPriority, Delegate, Object) BeginInvoke(DispatcherPriority, Delegate, Object) BeginInvoke(DispatcherPriority, Delegate, Object)

Выполняет указанный делегат асинхронно, с заданными приоритетом и аргументом, в потоке, с которым связан Dispatcher.Executes the specified delegate asynchronously at the specified priority and with the specified argument on the thread the Dispatcher is associated with.

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

Выполняет указанный делегат асинхронно, с заданными приоритетом и массивом аргументов, в потоке, с которым связан Dispatcher.Executes the specified delegate asynchronously at the specified priority and with the specified array of arguments on the thread the Dispatcher is associated with.

Комментарии

В WPFWPF, потоке, создавшем DispatcherObject может доступ к этому объекту.In WPFWPF, only the thread that created a DispatcherObject may access that object. Например, фоновый поток, который развернутые от основного потока пользовательского интерфейса не удается обновить содержимое Button , созданного в потоке пользовательского интерфейса.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Чтобы фоновый поток для доступа к свойство Content Button, фоновый поток должен делегировать работу в Dispatcher связанный с потоком пользовательского интерфейса.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Это достигается с помощью Invoke или BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke является синхронным и BeginInvoke является асинхронным.Invoke is synchronous and BeginInvoke is asynchronous. Операция добавляется в очередь событий Dispatcher по указанному индексу DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

BeginInvoke является асинхронным; Таким образом управление немедленно возвращается вызывающему объекту после его вызова.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

BeginInvoke Возвращает DispatcherOperation объект, который может использоваться для взаимодействия с делегатом, после делегата в очереди.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

DispatcherOperation Объект, возвращаемый BeginInvoke может использоваться несколькими способами для взаимодействия с указанным делегатом, такие как:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Изменение DispatcherPriority делегата, так как он находится в состоянии ожидания выполнения в очередь событий.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Удаление делегата из очереди событий.Removing the delegate from the event queue.

  • Ожидание возврата из делегата.Waiting for the delegate to return.

  • Получение значения, возвращаемого делегатом после его выполнения.Obtaining the value that the delegate returns after it is executed.

При наличии нескольких BeginInvoke вызовы выполняются в то же самое DispatcherPriority, они выполняются в порядке вызовов.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Если BeginInvoke вызывается для Dispatcher , завершил работу, свойство status возвращаемого DispatcherOperation присваивается Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

BeginInvoke(Delegate, Object[]) BeginInvoke(Delegate, Object[]) BeginInvoke(Delegate, Object[]) BeginInvoke(Delegate, Object[])

Выполняет указанный делегат асинхронно с указанными аргументами в потоке, в котором был создан объект Dispatcher.Executes the specified delegate asynchronously with the specified arguments on the thread that the Dispatcher was created on.

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

Параметры

method
Delegate Delegate Delegate Delegate

Делегат метода с параметрами, указанными в args, который помещен в очередь событий Dispatcher.The delegate to a method that takes parameters specified in args, which is pushed onto the Dispatcher event queue.

args
Object[]

Массив объектов, передаваемых в качестве аргументов указанному методу.An array of objects to pass as arguments to the given method. Может иметь значение null.Can be null.

Возвраты

Объект, возвращаемый сразу после вызова BeginInvoke, используемый для взаимодействия с делегатом, ожидающим выполнения в очереди событий.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the event queue.

Комментарии

DispatcherOperation Объект, возвращаемый BeginInvoke может использоваться несколькими способами для взаимодействия с указанным делегатом, такие как:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Изменение DispatcherPriority делегата, так как он находится в состоянии ожидания выполнения в очередь событий.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Удаление делегата из очереди событий.Removing the delegate from the event queue.

  • Ожидание возврата из делегата.Waiting for the delegate to return.

  • Получение значения, возвращаемого делегатом после его выполнения.Obtaining the value that the delegate returns after it is executed.

BeginInvoke является асинхронным; Таким образом управление немедленно возвращается вызывающему объекту после его вызова.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

В WPFWPF, потоке, создавшем DispatcherObject может доступ к этому объекту.In WPFWPF, only the thread that created a DispatcherObject may access that object. Например, фоновый поток, который развернутые от основного потока пользовательского интерфейса не удается обновить содержимое Button , созданного в потоке пользовательского интерфейса.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Чтобы фоновый поток для доступа к свойство Content Button, фоновый поток должен делегировать работу в Dispatcher связанный с потоком пользовательского интерфейса.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Это достигается с помощью Invoke или BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke является синхронным и BeginInvoke является асинхронным.Invoke is synchronous and BeginInvoke is asynchronous. Операция добавляется в очередь событий Dispatcher по указанному индексу DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Если BeginInvoke вызывается для Dispatcher , завершил работу, свойство status возвращаемого DispatcherOperation присваивается Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

BeginInvoke(DispatcherPriority, Delegate) BeginInvoke(DispatcherPriority, Delegate) BeginInvoke(DispatcherPriority, Delegate) BeginInvoke(DispatcherPriority, Delegate)

Выполняет указанный делегат асинхронно, с заданным приоритетом, в потоке, с которым связан Dispatcher.Executes the specified delegate asynchronously at the specified priority on the thread the Dispatcher is associated with.

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

Параметры

priority
DispatcherPriority DispatcherPriority DispatcherPriority DispatcherPriority

Приоритет относительно других ожидающих выполнения операций в очереди событий Dispatcher, с которым вызван заданный метод.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

method
Delegate Delegate Delegate Delegate

Делегат метода без аргументов, помещенный в очередь событий Dispatcher.The delegate to a method that takes no arguments, which is pushed onto the Dispatcher event queue.

Возвраты

Объект, возвращаемый сразу после вызова BeginInvoke, используемый для взаимодействия с делегатом, ожидающим выполнения в очереди событий.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the event queue.

Исключения

Примеры

Приведенный ниже показано, как выполнить операции на Dispatcher.The following example shows how to place an operation onto a Dispatcher. Полный исходный код этого примера, см. в разделе Пример однопоточного приложения с образцом выполняющейся длительное время расчета.For the full source code of this example, see Single-Threaded Application with Long-Running Calculation Sample.

Во-первых создается делегат, не принимающий аргументов.First, a delegate is created that accepts no arguments.

public delegate void NextPrimeDelegate();
Public Delegate Sub NextPrimeDelegate()

Далее, BeginInvoke(DispatcherPriority, Delegate) вызывается.Next, BeginInvoke(DispatcherPriority, Delegate) is called. Так как каждый DispatcherObject имеет свойство, которое возвращает Dispatcher он связан с, требуемым Dispatcher получить, запросив DispatcherObject, в данном случае Button с именем startStopButton.Because every DispatcherObject has a property that returns the Dispatcher it is associated with, the desired Dispatcher is obtained by querying the DispatcherObject, in this case a Button named startStopButton. Вызов BeginInvoke(DispatcherPriority, Delegate) принимает два параметра: приоритет, который имеет значение DispatcherPriority.Normalи обратный вызов, который передается в экземпляр делегата NextPrimeDelegate.The call to BeginInvoke(DispatcherPriority, Delegate) takes two parameters: the priority, which is set to DispatcherPriority.Normal, and the callback, which is passed in through an instance of the delegate NextPrimeDelegate.

startStopButton.Dispatcher.BeginInvoke(
    DispatcherPriority.Normal,
    new NextPrimeDelegate(CheckNextNumber));
startStopButton.Dispatcher.BeginInvoke(DispatcherPriority.Normal, New NextPrimeDelegate(AddressOf CheckNextNumber))

Комментарии

При наличии нескольких BeginInvoke вызовы выполняются в то же самое DispatcherPriority, они выполняются в порядке вызовов.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

BeginInvoke Возвращает DispatcherOperation объект, который может использоваться для взаимодействия с делегатом, после делегата в очереди.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

DispatcherOperation Объект, возвращаемый BeginInvoke может использоваться несколькими способами для взаимодействия с указанным делегатом, такие как:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Изменение DispatcherPriority делегата, так как он находится в состоянии ожидания выполнения в очередь событий.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Удаление делегата из очереди событий.Removing the delegate from the event queue.

  • Ожидание возврата из делегата.Waiting for the delegate to return.

  • Получение значения, возвращаемого делегатом после его выполнения.Obtaining the value that the delegate returns after it is executed.

BeginInvoke является асинхронным; Таким образом управление немедленно возвращается вызывающему объекту после его вызова.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

В WPFWPF, потоке, создавшем DispatcherObject может доступ к этому объекту.In WPFWPF, only the thread that created a DispatcherObject may access that object. Например, фоновый поток, который развернутые от основного потока пользовательского интерфейса не удается обновить содержимое Button , созданного в потоке пользовательского интерфейса.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Чтобы фоновый поток для доступа к свойство Content Button, фоновый поток должен делегировать работу в Dispatcher связанный с потоком пользовательского интерфейса.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Это достигается с помощью Invoke или BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke является синхронным и BeginInvoke является асинхронным.Invoke is synchronous and BeginInvoke is asynchronous. Операция добавляется в очередь событий Dispatcher по указанному индексу DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Если BeginInvoke вызывается для Dispatcher , завершил работу, свойство status возвращаемого DispatcherOperation присваивается Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

Дополнительно

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

Выполняет указанный делегат асинхронно, с заданными приоритетом и аргументами, в потоке, в котором был создан объект Dispatcher.Executes the specified delegate asynchronously with the specified arguments, at the specified priority, on the thread that the Dispatcher was created on.

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

Параметры

method
Delegate Delegate Delegate Delegate

Делегат метода с параметрами, указанными в args, который помещен в очередь событий Dispatcher.The delegate to a method that takes parameters specified in args, which is pushed onto the Dispatcher event queue.

priority
DispatcherPriority DispatcherPriority DispatcherPriority DispatcherPriority

Приоритет относительно других ожидающих выполнения операций в очереди событий Dispatcher, с которым вызван заданный метод.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

args
Object[]

Массив объектов, передаваемых в качестве аргументов указанному методу.An array of objects to pass as arguments to the given method. Может иметь значение null.Can be null.

Возвраты

Объект, возвращаемый сразу после вызова BeginInvoke, используемый для взаимодействия с делегатом, ожидающим выполнения в очереди событий.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the event queue.

Комментарии

DispatcherOperation Объект, возвращаемый BeginInvoke может использоваться несколькими способами для взаимодействия с указанным делегатом, такие как:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Изменение DispatcherPriority делегата, так как он находится в состоянии ожидания выполнения в очередь событий.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Удаление делегата из очереди событий.Removing the delegate from the event queue.

  • Ожидание возврата из делегата.Waiting for the delegate to return.

  • Получение значения, возвращаемого делегатом после его выполнения.Obtaining the value that the delegate returns after it is executed.

BeginInvoke является асинхронным; Таким образом управление немедленно возвращается вызывающему объекту после его вызова.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

В WPFWPF, потоке, создавшем DispatcherObject может доступ к этому объекту.In WPFWPF, only the thread that created a DispatcherObject may access that object. Например, фоновый поток, который развернутые от основного потока пользовательского интерфейса не удается обновить содержимое Button , созданного в потоке пользовательского интерфейса.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Чтобы фоновый поток для доступа к свойство Content Button, фоновый поток должен делегировать работу в Dispatcher связанный с потоком пользовательского интерфейса.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Это достигается с помощью Invoke или BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke является синхронным и BeginInvoke является асинхронным.Invoke is synchronous and BeginInvoke is asynchronous. Операция добавляется в очередь событий Dispatcher по указанному индексу DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Если BeginInvoke вызывается для Dispatcher , завершил работу, свойство status возвращаемого DispatcherOperation присваивается Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

BeginInvoke(DispatcherPriority, Delegate, Object) BeginInvoke(DispatcherPriority, Delegate, Object) BeginInvoke(DispatcherPriority, Delegate, Object) BeginInvoke(DispatcherPriority, Delegate, Object)

Выполняет указанный делегат асинхронно, с заданными приоритетом и аргументом, в потоке, с которым связан Dispatcher.Executes the specified delegate asynchronously at the specified priority and with the specified argument on the thread the Dispatcher is associated with.

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

Параметры

priority
DispatcherPriority DispatcherPriority DispatcherPriority DispatcherPriority

Приоритет относительно других ожидающих выполнения операций в очереди событий Dispatcher, с которым вызван заданный метод.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

method
Delegate Delegate Delegate Delegate

Делегат метода с одним аргументом, помещенный в очередь событий Dispatcher.A delegate to a method that takes one argument, which is pushed onto the Dispatcher event queue.

arg
Object Object Object Object

Объект, передаваемый в качестве аргумента указанному методу.The object to pass as an argument to the specified method.

Возвраты

Объект, возвращаемый сразу после вызова BeginInvoke, используемый для взаимодействия с делегатом, ожидающим выполнения в очереди событий.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the event queue.

Исключения

Примеры

Приведенный ниже показано, как выполнить операции на Dispatcher.The following example shows how to place an operation onto a Dispatcher.

Во-первых создается делегат, который принимает один аргумент, в данном случае строку.First, a delegate is created that accepts one argument, in this case a string.

private delegate void OneArgDelegate(String arg);
Private Delegate Sub OneArgDelegate(ByVal arg As String)

Далее, BeginInvoke(DispatcherPriority, Delegate, Object) вызывается.Next, BeginInvoke(DispatcherPriority, Delegate, Object) is called. Так как каждый DispatcherObject имеет свойство, которое возвращает Dispatcher он связан с, требуемым Dispatcher получить, запросив DispatcherObject, в данном случае Grid с именем tomorrowsWeather.Because every DispatcherObject has a property that returns the Dispatcher it is associated with, the desired Dispatcher is obtained by querying the DispatcherObject, in this case a Grid named tomorrowsWeather. Вызов BeginInvoke(DispatcherPriority, Delegate, Object) принимает три параметра: приоритет, который имеет значение DispatcherPriority.Normal; обратного вызова, которые передаются в экземпляр делегата OneArgDelegate; и строку с именем weather, которая является аргументом для обратного вызова.The call to BeginInvoke(DispatcherPriority, Delegate, Object) takes three parameters: the priority, which is set to DispatcherPriority.Normal; the callback, which is passed in through an instance of the delegate OneArgDelegate; and a string named weather, which is the argument for the callback.

// Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(
    System.Windows.Threading.DispatcherPriority.Normal,
    new OneArgDelegate(UpdateUserInterface), 
    weather);
' Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, New OneArgDelegate(AddressOf UpdateUserInterface), weather)

Комментарии

Arg может быть null Если аргументы не требуются.Arg can be null if no arguments are needed.

BeginInvoke Возвращает DispatcherOperation объект, который может использоваться для взаимодействия с делегатом, после делегата в очереди.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

DispatcherOperation Объект, возвращаемый BeginInvoke может использоваться несколькими способами для взаимодействия с указанным делегатом, такие как:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Изменение DispatcherPriority делегата, так как он находится в состоянии ожидания выполнения в очередь событий.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Удаление делегата из очереди событий.Removing the delegate from the event queue.

  • Ожидание возврата из делегата.Waiting for the delegate to return.

  • Получение значения, возвращаемого делегатом после его выполнения.Obtaining the value that the delegate returns after it is executed.

BeginInvoke является асинхронным; Таким образом управление немедленно возвращается вызывающему объекту после его вызова.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

В WPFWPF, потоке, создавшем DispatcherObject может доступ к этому объекту.In WPFWPF, only the thread that created a DispatcherObject may access that object. Например, фоновый поток, который развернутые от основного потока пользовательского интерфейса не удается обновить содержимое Button , созданного в потоке пользовательского интерфейса.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Чтобы фоновый поток для доступа к свойство content Button, фоновый поток должен делегировать работу в Dispatcher связанный с потоком пользовательского интерфейса.In order for the background thread to access the content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Это достигается с помощью Invoke или BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke является синхронным и BeginInvoke является асинхронным.Invoke is synchronous and BeginInvoke is asynchronous. Операция добавляется в очередь событий Dispatcher по указанному индексу DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

При наличии нескольких BeginInvoke вызовы выполняются в то же самое DispatcherPriority, они выполняются в порядке вызовов.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Если BeginInvoke вызывается для Dispatcher , завершил работу, свойство status возвращаемого DispatcherOperation присваивается Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

Дополнительно

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

Выполняет указанный делегат асинхронно, с заданными приоритетом и массивом аргументов, в потоке, с которым связан Dispatcher.Executes the specified delegate asynchronously at the specified priority and with the specified array of arguments on the thread the Dispatcher is associated with.

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

Параметры

priority
DispatcherPriority DispatcherPriority DispatcherPriority DispatcherPriority

Приоритет относительно других ожидающих выполнения операций в очереди событий Dispatcher, с которым вызван заданный метод.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

method
Delegate Delegate Delegate Delegate

Делегат метода с несколькими аргументами, помещенный в очередь событий Dispatcher.A delegate to a method that takes multiple arguments, which is pushed onto the Dispatcher event queue.

arg
Object Object Object Object

Объект, передаваемый в качестве аргумента указанному методу.The object to pass as an argument to the specified method.

args
Object[]

Массив объектов, передаваемых в качестве аргументов указанному методу.An array of objects to pass as arguments to the specified method.

Возвраты

Объект, возвращаемый сразу после вызова BeginInvoke, используемый для взаимодействия с делегатом, ожидающим выполнения в очереди Dispatcher.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the Dispatcher queue.

Исключения

Комментарии

arg Параметр может быть null Если аргументы не требуются.The arg parameter can be null if no arguments are needed.

BeginInvoke Возвращает DispatcherOperation объект, который может использоваться для взаимодействия с делегатом, после делегата в очереди.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

DispatcherOperation Объект, возвращаемый BeginInvoke может использоваться несколькими способами для взаимодействия с указанным делегатом, такие как:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Изменение DispatcherPriority делегата, так как он находится в состоянии ожидания выполнения в очередь событий.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Удаление делегата из очереди событий.Removing the delegate from the event queue.

  • Ожидание возврата из делегата.Waiting for the delegate to return.

  • Получение значения, возвращаемого делегатом после его выполнения.Obtaining the value that the delegate returns after it is executed.

BeginInvoke является асинхронным; Таким образом управление немедленно возвращается вызывающему объекту после его вызова.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

В WPFWPF, потоке, создавшем DispatcherObject может доступ к этому объекту.In WPFWPF, only the thread that created a DispatcherObject may access that object. Например, фоновый поток, который развернутые от основного потока пользовательского интерфейса не удается обновить содержимое Button , созданного в потоке пользовательского интерфейса.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Чтобы фоновый поток для доступа к свойство Content Button, фоновый поток должен делегировать работу в Dispatcher связанный с потоком пользовательского интерфейса.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Это достигается с помощью Invoke или BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke является синхронным и BeginInvoke является асинхронным.Invoke is synchronous and BeginInvoke is asynchronous. Операция добавляется в очередь событий Dispatcher по указанному индексу DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

При наличии нескольких BeginInvoke вызовы выполняются в то же самое DispatcherPriority, они выполняются в порядке вызовов.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Если BeginInvoke вызывается для Dispatcher , завершил работу, свойство status возвращаемого DispatcherOperation присваивается Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

Дополнительно

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