roMessagePort
9 min
un puerto de mensajes es el destino al que se envían los mensajes (eventos) consulte la explicación de bucles de eventos docid\ tbk2oc2zug3ov5y9wwvqf para obtener más detalles no llama directamente a estas funciones cuando usa brightscript en su lugar, use la wait() función global docid 8viubcc3f1mpxoos0i8yf ifmessageport getmessage() as object devuelve el objeto de evento si está disponible de lo contrario, se devuelve inválido en cualquiera de los casos, este método devuelve inmediatamente sin esperar waitmessage(timeout as integer) as object espera hasta que un objeto de evento esté disponible o hasta que haya transcurrido la cantidad especificada de milisegundos cuando un objeto de evento esté disponible, se devolverá si se alcanza el tiempo de espera, se devolverá invalid pasar un valor de tiempo de espera de cero indica a este método que espere indefinidamente un mensaje también puede usar la función global wait() para recuperar objetos de evento durante un intervalo especificado las siguientes dos instrucciones tienen el mismo efecto msg = port waitmessage(timeout) msg = wait(timeout, port) postmessage(msg as object) as void peekmessage() as object devuelve el objeto de evento si está disponible (o invalid en caso contrario), pero no elimina el objeto de evento de la cola de mensajes; una llamada posterior a getmessage() , waitmessage() , o peekmessage() devolverá el mismo objeto de evento setwatchdogtimeout(seconds as integer) as integer habilita un tiempo de espera del watchdog en la instancia de romessageport si se pasa un entero positivo el watchdog bloqueará y reiniciará el reproductor si el script no llama a getmessage() o waitmessage() después del número especificado de segundos (el tiempo de espera se bloquea mientras el script espera en el puerto de mensajes) pasar cero a este método deshabilita el watchdog algunas operaciones de brightscript (por ejemplo, roassetrealizer realize() ) pueden tardar mucho tiempo en devolver el control en estos casos, puede ser mejor usar un tiempo de espera corto para el watchdog en general, pero cambiar a un tiempo de espera más largo antes de llamar a dichas operaciones el tiempo de espera del watchdog solo se aplica a su instancia asociada de romessageport , por lo que habilitar el watchdog en una instancia de romessageport y luego llamar a waitmessage() en otra puede hacer que el watchdog se active inesperadamente el watchdog no se activará mientras espera en el prompt del depurador de brightscript deferwatchdog(seconds as integer) pospone el tiempo de espera del watchdog establecido por el método setwatchdogtimeout() pasar un entero a este método pospone el tiempo de espera durante el número especificado de segundos deferwatchdog() pospone el tiempo de espera del watchdog por la cantidad de segundos establecida en el método setwatchdogtimeout() las llamadas a cualquiera de los métodos deferwatchdog() no pueden hacer que el watchdog se active antes de lo que ya lo haría por ejemplo, llamar a deferwatchdog(100) seguido de deferwatchdog(10) seguirá haciendo que el watchdog se active después de 100 segundos ifenum reset() restablece la posición al primer elemento de la enumeración next() as dynamic devuelve el valor tipado en la posición actual y avanza la posición isnext() as boolean devuelve verdadero si hay un elemento siguiente isempty() as boolean devuelve verdadero si no hay un elemento siguiente