private void playTimer_Tick(object sender, EventArgs e) { while (llindex < llmacro.Count) { int ltc = lastTickCount; int timestamp = ltc + llmacro[llindex].Time; if (timestamp > Environment.TickCount) { playTimer.Interval = Math.Max(1, timestamp - Environment.TickCount - 5); return; } llmacro[llindex].ReplayEvent(); lastTickCount = timestamp; llindex++; } llindex = -1; state = MacroState.STOPPED; if (bi) { iblock.Dispose(); } UpdateIcons(); playTimer.Enabled = false; }