LUA 동기 및 비동기 동사 완료
LUA(논리 단위 애플리케이션) 동사는 동기적으로 또는 비동기적으로 실행을 완료할 수 있습니다.
동기 동사 완성
LUA가 발급되는 즉시 동사에 대한 모든 처리를 완료할 수 있는 경우 동사는 동기적으로 완료됩니다. 이 경우 기본 반환 코드는 LUA_IN_PROGRESS 이외의 값으로 설정되고 lua_flag2.async 비트는 0으로 설정됩니다.
기본 반환 코드가 LUA_IN_PROGRESS 같지 않은 lua_flag2.async 비트의 값을 테스트해야 합니다. (반환된 이러한 매개 변수에 대한 자세한 내용은 개별 동사 설명을 참조하세요.)
비동기 동사 완성
일부 LUA 동사(예: RUI_PURGE)는 로컬 처리 후 빠르게 완료됩니다. 그러나 대부분의 동사는 로컬 노드 또는 호스트 애플리케이션으로 메시지를 보내고 받아야 하므로 완료하는 데 다소 시간이 걸립니다.
LUA가 동사를 완료하기 전에 원격 LU 또는 로컬 노드에서 정보를 기다려야 하는 경우 동사는 비동기적으로 완료됩니다.
이 경우 lua_flag2.async 비트가 1로 설정됩니다. 기본 반환 코드도 일반적으로 LUA_IN_PROGRESS 설정되지만 이 값은 사용할 수 없습니다. lua_flag2.async 비트의 값을 테스트해야 합니다. 이제 애플리케이션은 다른 처리를 수행하거나 동사가 완료되었다는 LUA의 알림을 기다릴 수 있습니다. LUA는 기본 반환 코드를 최종 값으로 설정하고 lua_flag2.async 를 1로 설정하여 이 알림을 발급합니다.
동사가 완료되면 LUA는 사용자 환경에 따라 다음을 수행합니다.
Windows의 경우 두 가지 유형의 알림이 가능합니다. LUA 애플리케이션은 다음 중 하나를 수행합니다.
WaitForSingleObject 또는 WaitForMultipleObject 문제를 해결합니다.
또는
WinRUI WinSLI 메시지의 창 핸들에 "WinRUI//WinSLI" 알림 메시지를 게시합니다.
WaitForSingleObject 또는 WaitForMultipleObject를 사용하는 이벤트 메서드는 Windows에서 비동기 알림을 받는 기본 방법입니다.
Windows 환경에서는 WinRUI/WinSLI 메시지의 창 핸들에 "WinRUI/WinSLI" 알림 메시지를 게시하여 비동기 요청 완료를 알립니다. WinRUI 및 WinSLI 진입점에 전달된 첫 번째 매개 변수로 창 핸들이 추가되었습니다.