ISynchronizeInvoke Интерфейс
В этой статье
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Обеспечивает возможность синхронного или асинхронного выполнения делегата.
public interface class ISynchronizeInvoke
public interface ISynchronizeInvoke
type ISynchronizeInvoke = interface
Public Interface ISynchronizeInvoke
- Производный
Интерфейс ISynchronizeInvoke обеспечивает синхронную и асинхронную связь между объектами о возникновении события. Объекты, реализующие этот интерфейс, могут получать уведомления о возникновении события и отвечать на запросы о событии. Таким образом, клиенты могут убедиться, что один запрос был обработан, прежде чем отправлять последующий запрос, который зависит от завершения первого.
Класс ISynchronizeInvoke предоставляет два способа вызова процесса:
Асинхронно с помощью BeginInvoke метода . BeginInvoke запускает процесс, а затем возвращается немедленно. Используйте для EndInvoke ожидания завершения процесса BeginInvoke .
Синхронно с помощью Invoke метода . Invoke запускает процесс, ожидает его завершения, а затем возвращает значение . Используйте, Invoke когда поток main элемента управления отличается от вызывающего потока, чтобы маршалировать вызов к нужному потоку.
Примечание
АтрибутHostProtectionAttribute, применяемый к этому классу, имеет следующее Resources значение свойства: | SynchronizationExternalThreading . Атрибут HostProtectionAttribute не оказывает влияния на настольные приложения (обычно запускаемые двойным щелчком значка, вводом команды или URL-адреса в браузере). Дополнительные сведения см. в HostProtectionAttribute разделе Класс или SQL Server Атрибуты программирования и защиты узла.
Invoke |
Возвращает значение, показывающее, должен ли вызывающий объект вызвать метод Invoke(Delegate, Object[]) при вызове объекта, реализующего этот интерфейс. |
Begin |
Асинхронно выполняет делегата для потока, создавшего этот объект. |
End |
Ожидает завершения процесса, запущенного вызовом метода 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 |