Finalización sincrónica y asincrónica de verbos de LUA
Los verbos de aplicación de unidad lógica (LUA) pueden completar la ejecución de forma sincrónica o asincrónica.
Finalización sincrónica del verbo
Cuando LUA puede completar todo el procesamiento de un verbo tan pronto como se emita, el verbo se ha completado de forma sincrónica. Cuando esto sucede, el código de retorno principal se establece en un valor distinto de LUA_IN_PROGRESS y el bit lua_flag2.async se establece en cero.
Se debe probar el valor del bit lua_flag2.async , no el código de retorno principal no es igual a LUA_IN_PROGRESS. (Para obtener información sobre estos parámetros devueltos, vea descripciones de verbo individuales).
Finalización asincrónica de verbos
Algunos verbos LUA (por ejemplo, RUI_PURGE) se completan rápidamente después del procesamiento local. Sin embargo, la mayoría de los verbos tardan algún tiempo en completarse porque requieren que los mensajes se envíen y reciban desde el nodo local o la aplicación host.
Cuando LUA debe esperar información desde la LU remota o desde el nodo local antes de que pueda completar un verbo, el verbo se completa de forma asincrónica.
Cuando esto sucede, el bit lua_flag2.async se establece en 1. El código de retorno principal también se establece normalmente en LUA_IN_PROGRESS, pero no se puede confiar en este valor. Se debe probar el valor del bit lua_flag2.async . La aplicación ahora puede realizar otro procesamiento o esperar una notificación de LUA que el verbo ha completado. LUA emite esta notificación estableciendo el código de retorno principal en su valor final y dejando lua_flag2.async establecido en 1.
Cuando se complete el verbo, LUA hace lo siguiente en función de su entorno:
Para Windows, se pueden realizar dos tipos de notificación. La aplicación LUA:
Problemas WaitForSingleObject o WaitForMultipleObject.
O bien:
Publica el mensaje de notificación "WinRUI/WinSLI" en el identificador de ventana del mensajeWinSLI de WinRUI/.
El método de evento que usa WaitForSingleObject o WaitForMultipleObject es la manera preferida de recibir notificaciones asincrónicas en Windows.
En el entorno de Windows, notifica la finalización de una solicitud asincrónica publicando el mensaje de notificación "WinRUI/WinSLI" en el identificador de ventana del mensajeWinSLI de WinRUI/. Se ha agregado un identificador de ventana como primer parámetro pasado a los puntos de entrada WinRUI y WinSLI .