Meu evento Timer falha porque os eventos são chamados em um segmento diferente

Eu recebo o erro "Operação de encadeamento cruzado inválida: Controle 'label1' acessado de um encadeamento diferente do encadeamento em que foi criado." quando eu corro este código:

using System;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Timers;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        System.Timers.Timer T = new System.Timers.Timer();
        public Form1()
        {
            InitializeComponent();
            T.Elapsed += new ElapsedEventHandler(T_Elapsed);
            T.Start();
        }

        void T_Elapsed(object sender, ElapsedEventArgs e)
        {
            label1.Text = "This will not work";
        }
    }
}

Achei que os eventos foram executados no mesmo segmento em que foram acionados.

questionAnswers(8)

yourAnswerToTheQuestion