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