Асинхронные атрибуты
Когда программа вызывает процедуру в интерфейсе, процедура может выполняться синхронно или асинхронно. Синхронная процедура заставляет вызывающую программу ждать, пока процедура не вернется, прежде чем программа сможет продолжить работу. Асинхронная процедура возвращается немедленно, не дожидаясь результатов. Позднее вызывающая программа должна повторно выполнить синхронизацию с процедурой интерфейса для получения данных. Дополнительные сведения см. в разделе Асинхронный RPC.
Для обеспечения поддержки асинхронных удаленных вызовов процедур можно использовать следующие атрибуты.
attribute | Использование |
---|---|
Async | При применении к параметру функции определяет дескриптор, который позволяет вызывающей объекту выполнять асинхронный вызов и немедленно возвращать его без ожидания результатов, а затем повторно выполнять синхронизацию с вызываемой функцией для получения данных после завершения вызова. Асинхронный атрибут также используется в файлах ACF для определения асинхронного дескриптора для процедуры или всего интерфейса. Для COM-интерфейсов этот интерфейс устарел и не может использоваться для новых интерфейсов. |
async_uuid | Направляет компилятор MIDL для определения синхронных и асинхронных версий COM-интерфейса. |
Может | Клиент, выполняющий этот удаленный вызов процедуры, не ожидает ответа, указывающего на доставку или завершение вызова, и доставка не гарантируется. Это отличается от операций с сообщениями , в которых ответ не ожидается, но доставка гарантирована. |
Сообщение | Удаленный вызов процедуры должен рассматриваться как асинхронное сообщение от клиента к серверу. Клиент выполняет вызов и немедленно возвращается, а фактический вызов обрабатывается транспортом очереди сообщений (ncadg_mq). |