Прочитать на английском

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


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[])

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

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

Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

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