AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de servicios
  • Consejos
  • Modo de uso
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Pausa el servicio actual durante la duración especificada.
Observación: Esta función se ignora si no se llama en una aplicación de servicio.
Ejemplo
// -- Running the service (called in loop) --

// Main loop of the service
// Check the presence of files in the directory
sFileList is string
sFileList = fListFile("c:\temp\entry\*.*", frNotRecursive)

// If files have been included in the directory, they are processed by the service
IF sFileList <> "" THEN
ProcessFileList(sFileList)
END

// Wait during 10 seconds between two loops
ServiceWait(10*100)
Sintaxis
ServiceWait(<Wait>)
<Wait>: Entero o Duración
Tiempo de espera del hilo actual del servicio (en centésimas de segundo). Este parámetro puede corresponder a:
  • un número entero que corresponde al número de centésimas de segundo,
  • una variable de tipo Duration,
  • la duración en un formato legible (por ejemplo, 1 s o 10 ms).
Observaciones

Consejos

  • Una aplicación de servicio ejecuta el "Servicio de ejecución" Event en un bucle. Para evitar consumir los recursos del procesador del equipo, ServiceWait debe utilizarse al final de este evento.
  • Multitask, esperar o ThreadPause no deben utilizarse en una aplicación de Servicio.

Modo de uso

ServiceWait es necesario si el código de servicio no realiza el tiempo de espera por sí mismo.
La ejecución de la función ServiceWait finaliza automáticamente si se envía una solicitud para interrumpir el servicio.
A continuación se presentará una clasificación de los tipos de servicios y de los casos en los que puede utilizarse la función ServiceWait.
  • Categoría 1
    Cuando ServiceWait es inútil: cuando el servicio espera una solicitud externa. Por ejemplo:
    • un servidor de comunicación por sockets que espera una solicitud de conexión (SocketWaitForConnection)
    • un servicio que espera una señal externa (EventWait)
    • un servicio a la espera de una sincronización interna de los hilos.
    En estos casos, ServiceWait no tiene ningún efecto. Sin embargo, se debe utilizar un código de parada específico para interrumpir la espera..
    Observación: Un servicio estándar propone servicios a los otros procesos: por lo tanto, está a la espera de "órdenes" externas y se encuentra en la categoría 1 para la que ServiceWait no tiene efecto.
  • Categoría 2
    Caso en el que es de poca utilidad utilizar la función ServiceWait: controles en bucles rápidos (un segundo). Por ejemplo, comprobar el estado de un archivo de base de datos de forma regular..
    El servicio permanece menos de un segundo en el tiempo de espera y ThreadPause es suficiente. En una parada se solicita, esta parada se realizará al final del bucle, por lo tanto después de una espera de unos segundos.
  • Categoría 3
    Caso en el que es de gran utilidad utilizar la función ServiceWait: cheques espaciados en el tiempo. Por ejemplo, procesar un spool de ficheros en un directorio con verificaciones de directorio cada 5 minutos..
    Observación: En este caso, se recomienda una tarea de programación.
Componente: wd300vm.dll
Versión mínima requerida
  • Versión 15
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 27/05/2022

Señalar un error o enviar una sugerencia | Ayuda local