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


ISynchronizeInvoke Интерфейс

Определение

Предоставляет способ синхронного или асинхронного выполнения делегата.

public interface class ISynchronizeInvoke
public interface ISynchronizeInvoke
type ISynchronizeInvoke = interface
Public Interface ISynchronizeInvoke
Производный

Комментарии

Интерфейс ISynchronizeInvoke обеспечивает синхронную и асинхронную связь между объектами о возникновении события. Объекты, реализующие этот интерфейс, могут получать уведомления о том, что произошло событие, и они могут отвечать на запросы о событии. Таким образом клиенты могут убедиться, что один запрос был обработан перед отправкой последующего запроса, который зависит от завершения первого.

Класс ISynchronizeInvoke предоставляет два способа вызова процесса:

  1. Асинхронно с помощью BeginInvoke метода. BeginInvoke запускает процесс, а затем возвращается немедленно. Используется EndInvoke для ожидания завершения процесса BeginInvoke .

  2. Синхронно с помощью Invoke метода. Invoke запускает процесс, ожидает завершения, а затем возвращается. Используйте Invoke , если основной поток элемента управления отличается от вызывающего потока для маршалирования вызова соответствующего потока.

Замечание

Атрибут, применяемый к этому классу, имеет следующее HostProtectionAttributeResources значение свойства: Synchronization | ExternalThreading Это HostProtectionAttribute не влияет на классические приложения (которые обычно запускаются путем двойного щелчка значка, ввода команды или ввода URL-адреса в браузере). Дополнительные сведения см. в HostProtectionAttribute разделе "Класс" или "Атрибуты защиты узлов SQL Server".

Свойства

Имя Описание
InvokeRequired

Возвращает значение, указывающее, должен Invoke(Delegate, Object[]) ли вызывающий вызов при вызове объекта, реализующего этот интерфейс.

Методы

Имя Описание
BeginInvoke(Delegate, Object[])

Асинхронно выполняет делегат в потоке, который создал этот объект.

EndInvoke(IAsyncResult)

Ожидает завершения процесса путем вызова BeginInvoke(Delegate, Object[]) , а затем возвращает значение, созданное процессом.

Invoke(Delegate, Object[])

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

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

См. также раздел