private void timer1_Tick(object sender, EventArgs e) { if (Interlocked.Exchange(ref inTimerCallback, 1) != 0) { return; } Eye.Refresh(); timer1.Interval = random.Next(500, 1000); Interlocked.Exchange(ref this.inTimerCallback, 0); }