如何在播放音调后插入2秒的间隔?

时间:2014-07-01 06:23:34

标签: c# timer

System.Timers.Timer intervalTimer = new System.Timers.Timer(2000); // set the timer for 2 sec.
intervalTimer.Elapsed += new ElapsedEventHandler(intervalTimer_Elapsed);

private void doHearingTest(ArrayList TestSeq)
    {
        if (!initialTestCompleted && testPerFreqLeft == totalTestPerFreqForInit)
        {
            label1.Text += testFreqSet[(int)initTestSeq[currentFreqIndex]] + " , ";
            if (currentFreqIndex == numOfFreqTested - 1)
                label1.Text += " || ";
        }
        else if (initialTestCompleted && testPerFreqLeft == totalTestPerFreqForMalig)
        {
            label3.Text += testFreqSet[(int)maligTestSeq[currentFreqIndex]] + " , ";
            if (currentFreqIndex == numOfFreqTested - 1)
                label3.Text += " || ";
        }
        #endregion

        leftRightPan = (currentFreqIndex < numOfFreqTested) ? 10000 : -10000; //right = 10000
        int ear = (leftRightPan == 10000) ? 0 : 1;

        int freqIndex = (int)TestSeq[currentFreqIndex];


        int testVol = earFreqDBVolAdj[ear, freqIndex, currentTestVolIndex];


        noResponseTimer.Start();
        intervalTimer.Start();

        playTone(testFreqSet[freqIndex], testVol, leftRightPan, tonePlayTime);


        responseDetected = false;
        respondCounter = 0;
        testPerFreqLeft--;
    }

 private void intervalTimer_Elapsed(object sender, ElapsedEventArgs e)
    {

        intervalTimer.Stop();   
    }

我希望在前一个音调和下一个音调播放之间有2秒的间隔。知道如何做到这一点?非常感谢。

4 个答案:

答案 0 :(得分:0)

对我来说,你只需要从你的处理函数中调用DoHearingTest(),这应该可以解决这个问题

答案 1 :(得分:0)

您可以查看此链接 - 示例为Timer.Elapsed事件设置事件处理程序,创建计时器,使用Interval属性设置计时器间隔,并启动计时器。每次引发时,事件处理程序都会显示SignalTime属性。

http://msdn.microsoft.com/en-us/library/system.timers.timer.interval(v=vs.110).aspx

答案 2 :(得分:0)

使用Windows.Form.Timer代替您正在使用的内容。 等;

        System.Windows.Forms.Timer t = new System.Windows.Forms.Timer();
        t.Interval = 2000; // time to occuer the tick event
        t.Tick += new EventHandler(t_Tick); // create event

在每两分钟后的Tick事件中为您写下声音代码;

    void t_Tick(object sender, EventArgs e)
    {
        t.stop();
        doHearingTest(TestSeq); // this is your code to run at every two minute
        t.start();
    }

请根据需要进行其他更改.. !!

答案 3 :(得分:-2)

Thread.Sleep(2000);

打破了当前的线程睡眠