Calocybe: aufeinanderfolgende setInterval-aufrufe nacheinander abarbeiten

Beitrag lesen

Hi Michael!

Hm. Aber könnte man sich nicht selbst eine Synchronisation bauen?

Das wird sich nicht umgehen lassen, wenn man konkrete Anforderungen an die Reihenfolge hat.

Sagen wir mal: eine globale JavaScript-Variable als Flag; die erste
Funktion setzt dieses Flag, wenn sie fertig ist; die zweite fragt es
ab (busy wait, ggf. mit sleep() oder etwas Ähnlichem) und fängt erst
an, wenn sie das gesetzte Flag findet ...

Ich wuerde einfach eine zentrale Dispatcherfunktion bauen, die einzige, die ueber einen Timer aufgerufen wird. Je nach Programmstatus (zu dem auch gehoert, welche Fkt. wie oft ausgefuehrt wurde) ruft diese dann die eigentlichen Arbeitsroutinen auf. So koennte man z.B. dispatcher() mit einem 10ms-Timer aufrufen lassen, diese gibt dann bei jedem Aufruf an func1() und dann noch bei jedem zweiten Aufruf an func2() weiter. Somit wird func1() mit einer 100Hz-Frequenz aufgerufen, func2() mit 50Hz, und ausserdem func2() immer erst nach func1(). Immer vorausgesetzt natuerlich, dass der ausfuehrende Rechner schnell genug ist, um dies ueberhaupt zu realisieren.

So long