ソースあんまり読んでないけどTimerクラスを作って指定した時間が経過したら次の処理って感じでやってる?
別に不格好ではないと思うよ
ただGetNowCount関数を使ってるけど、これだとウィンドウが非アクティブな時もカウントが進む仕様になるよね?
そこだけ気になったかな