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 Атрибуты программирования и защиты узла.
Свойства
InvokeRequired |
Возвращает значение, показывающее, должен ли вызывающий объект вызвать метод Invoke(Delegate, Object[]) при вызове объекта, реализующего этот интерфейс. |
Методы
BeginInvoke(Delegate, Object[]) |
Асинхронно выполняет делегата для потока, создавшего этот объект. |
EndInvoke(IAsyncResult) |
Ожидает завершения процесса, запущенного вызовом метода BeginInvoke(Delegate, Object[]), а затем возвращает значение, созданное процессом. |
Invoke(Delegate, Object[]) |
Синхронно выполняет делегат в потоке, создавшем этот объект, а затем выполняет маршалинг вызова в текущий поток. |