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 , если основной поток элемента управления отличается от вызывающего потока для маршалинга вызова в соответствующий поток.

Примечание

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

Свойства

InvokeRequired

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

Методы

BeginInvoke(Delegate, Object[])

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

EndInvoke(IAsyncResult)

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

Invoke(Delegate, Object[])

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

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

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