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


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

Примечание

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

Свойства

InvokeRequired

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

Методы

BeginInvoke(Delegate, Object[])

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

EndInvoke(IAsyncResult)

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

Invoke(Delegate, Object[])

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

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

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