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