I have a windows app which is just a form with a timer control on. I've managed to track this down to the following situation:
private void timer1_Tick(object sender, EventArgs e)
{
    MessageBox.Show("Test");
    timer1.Enabled = false;
}
Will print Test again and again until I stop the program. However:
    private void timer1_Tick(object sender, EventArgs e)
    {
        //MessageBox.Show("Test");
        textBox1.Text += "t";
        timer1.Enabled = false;            
    }
Just adds a single "t" to the textbox.
Can anyone tell me why MessageBox.Show is causing the function to return before the timer is disabled?