Timers en Builder C++

ladlo
25 de Octubre del 2005
Estoy trabajando en un programa que cada X milisegundos debe ejecutar un codigo. Para ello empleo un componente del tipo TTimer, con un intervalo de tiempo que oscila entre 20 y 10 milisegundos. El problema viene a ser:
En Linux (usando Kylix 3) el programa va como la seda, pero en Windows solo funciona a determinadas frecuencias. En un P4 1´8Ghz el codigo solo se ejecuta 3/4 partes de las veces que deberia si la frecuencia del Timer es 20 millsec, pero sin embargo los fallos son minimos si la frecuencia es de 15 millsec. El otro ordenador de prueba es un AMD 300 Mhz, en el que el codigo falla si lo solicito cada 15 millsec, pero funciona para 20 y 10 millsec (asi que se descarta que los fallos vengan por ser un intervalo muy ajustado). He llegado a trabajar con la API de Windows directamente para la creacion del Timer por si Builder cometia algún error al generar el codigo, pero los resultados son identicos. ¿Alguien tiene alguna idea de por que sucede esto?. Me basta con saber por que falla. Muchas gracias y perdon por la extension del mensaje.

ladlo
25 de Octubre del 2005
Si, soy yo, el de arriba. He encontrado la respuesta al problema y aqui va, por si alguien está en esta misma tesitura: La resolucion minima de los mensajes "OnTimer" en Windows es de 55 milisegundos, a pesar de que la herramienta (Builder en este caso) te deje especificar un tiempo menor. Si funciona por debajo de ese intervalo no es fiable (aunque puede llegar a funcionar en ciertas circunstancias). El articulo que habla sobre el tema lo hallareis en los foros de dessarrolladores de la web de Borland (se requiere registro).

Wray
25 de Octubre del 2005
Perdona ladlo, podrías explicarme como funciona el TTimer, por favor. Si te resulta demasiado tedioso dame algún lugar donde pueda enterarme, lo necesito urgente
Muchas gracias.