Sous Win/C, il y a un message émis WM_TIMER (de mémoire). Tout dépend de si on a prévu de le prendre en compte de façon prioritaire ou non.
Si c'est le Timer qui fait battre le coeur du programme, il faut que le travail en cours ne soit pas trop long (sinon, on risque de "rater le coche" ). Si le timer n'a qu'une action annexe, il faut de temps en temps vérifier si le message est ou non arrivé.
Dans un système 32 bits multithread, ça doit pouvoir être moins critique, si on s'y prend bien (je code tj sous 16 bits => j'imagine)...