private void Form1_Load(object sender, EventArgs e)
    {

        AutoResetEvent autoEvent = new AutoResetEvent(false);
        StatusChecker statusChecker = new StatusChecker();

        // Create the delegate that invokes methods for the timer.
        TimerCallback timerDelegate =
            new TimerCallback(statusChecker.CheckStatus);

        // タイマー起動
        Console.WriteLine("{0} タイマーを起動します.\n",
            DateTime.Now.ToString("h:mm:ss.fff"));

        System.Threading.Timer stateTimer =
                //最後の2つの値→初動実行までの時間,実行間隔(ミリ秒)
                new System.Threading.Timer(timerDelegate, autoEvent, 0, 10000);

        // タイマーの待機時間は-1にすると無制限になる(有限にしたい場合はミリ秒で記述)
        autoEvent.WaitOne(-1, false);
        //タイマーの開放
        stateTimer.Dispose();

    }

    class StatusChecker
    {
        public StatusChecker()
        {
        }

        // This method is called by the timer delegate.
        public void CheckStatus(Object stateInfo)
        {
            AutoResetEvent autoEvent = (AutoResetEvent)stateInfo;

            //ここに一定時間で実行したい処理を書く
            MessageBox.Show("テスト");

        }
    }

例えば、 「テスト」という表示メッセージを消さなければ、
一定時間後、タイマーで再び「テスト」と表示することをスルーしたいのですが、
フラグによる操作しか方法はないでしょうか?

visual sutudio express 2015 windows 10 (64bit)