Share via


Introducción a los temporizadores basados en servidor

Actualización: noviembre 2007

Los temporizadores basados en servidor permiten especificar un intervalo periódico para que se produzca un evento en la aplicación. Una vez hecho esto, podrá controlar este evento para proporcionar un procesamiento regular. Por ejemplo, suponga que tiene un servidor que debe funcionar las veinticuatro horas del día, siete días a la semana. Podría crear un servicio que utilizara un temporizador para comprobar periódicamente el estado del servidor y asegurarse de que el sistema está en funcionamiento. Si el sistema no responde, el servicio puede intentar reiniciar el servidor o notificárselo a un administrador.

Nota:

El intervalo en los temporizadores de servidor se especifica en milisegundos.

Temporizadores de servidor, de Windows y de subprocesos

Hay tres controles de temporizador en Visual Studio y .NET Framework:

  • Un temporizador basado en servidor, que se puede agregar al Cuadro de herramientas

  • Un temporizador basado en Windows, que siempre está en el Cuadro de herramientas

  • Un temporizador de subproceso, que está disponible mediante programación.

El temporizador basado en Windows está optimizado para su utilización en aplicaciones de Windows Forms. El temporizador basado en servidor es una actualización del temporizador tradicional, optimizada para ejecutarse en un entorno de servidor. El temporizador de subprocesos es un temporizador sencillo y ligero que utiliza métodos de devolución de llamada en lugar de eventos y se ejecuta a través de subprocesos del grupo de subprocesos.

Hay dos tipos de subprocesos en la arquitectura Win32: subprocesos de interfaz de usuario y subprocesos de trabajo. Los subprocesos de interfaz de usuario permanecen inactivos la mayor parte del tiempo y esperan la llegada de mensajes a sus bucles de mensajes. Cuando reciben un mensaje, lo procesan y esperan la llegada del siguiente. Como alternativa, se utilizan los subprocesos de trabajo para ejecutar procesos en segundo plano y no se utilizan bucles de mensajes. El temporizador de Windows y el temporizador basado en servidor se ejecutan utilizando una propiedad Interval. El intervalo del temporizador de subprocesos se define en el constructor Timer. Los temporizadores se diseñan con diferentes fines, como indica su control de subprocesos:

  • El temporizador de Windows está diseñado para un entorno de un solo subproceso, donde se utilizan subprocesos de interfaz de usuario para la ejecución de los procesos. La precisión de los temporizadores de Windows está limitada a 55 milisegundos. Estos temporizadores tradicionales necesitan que el código del usuario tenga un suministro de mensajes de interfaz de usuario y que funcione siempre desde el mismo subproceso o calcule las referencias de la llamada a otro subproceso. Para un componente COM, esto perjudicaría al rendimiento.

  • El temporizador basado en servidor está diseñado para utilizarse con subprocesos de trabajo en un entorno de múltiples subprocesos. Puesto que utilizan una arquitectura diferente, los temporizadores basados en servidor pueden ser mucho más precisos que los temporizadores de Windows. Los temporizadores de servidor pueden moverse entre los subprocesos para controlar los eventos que se produzcan.

  • El temporizador de subprocesos es útil en escenarios donde no se bombean mensajes en el subproceso. Por ejemplo, el temporizador basado en Windows depende de la compatibilidad con temporizador del sistema operativo y, si no se bombean mensajes en el subproceso, no se produce el evento asociado con el temporizador. El temporizador de subprocesos resulta más útil en este caso.

El temporizador de Windows está ubicado en el espacio de nombres System.Windows.Forms; el temporizador de servidor está ubicado en el espacio de nombres System.Timers, y el temporizador de subprocesos está ubicado en el espacio de nombres System.Threading.

Vea también

Tareas

Cómo: Crear instancias de temporizadores basados en servidor

Cómo: Supervisar los temporizadores basados en servidor

Conceptos

Arquitectura de programación de Timer

Temporizadores

Grupo de subprocesos administrados

Referencia

Información general sobre el componente Timer (formularios Windows Forms)