C# 如何在音调播放后插入2秒的间隔? System.Timers.Timer intervalTimer=新的System.Timers.Timer(2000);//将计时器设置为2秒。 intervalTimer.appeased+=新的ElapsedEventHandler(intervalTimer\u appeased); 私有void doHearingTest(数组列表TestSeq) { 如果(!initialTestCompleted&&testPerFreqLeft==totalTestPerFreqForInit) { label1.Text+=testFreqSet[(int)initTestSeq[currentFreqIndex]]+”,”; if(currentFreqIndex==numoFreqTested-1) 标签1.Text+=“| |”; } else if(initialTestCompleted&&testPerFreqLeft==totalTestPerFreqForMalig) { label3.Text+=testFreqSet[(int)maligTestSeq[currentfrequendex]]+“,”; if(currentFreqIndex==numoFreqTested-1) 标签3.Text+=“| |”; } #端区 leftRightPan=(currentFreqIndex

C# 如何在音调播放后插入2秒的间隔? System.Timers.Timer intervalTimer=新的System.Timers.Timer(2000);//将计时器设置为2秒。 intervalTimer.appeased+=新的ElapsedEventHandler(intervalTimer\u appeased); 私有void doHearingTest(数组列表TestSeq) { 如果(!initialTestCompleted&&testPerFreqLeft==totalTestPerFreqForInit) { label1.Text+=testFreqSet[(int)initTestSeq[currentFreqIndex]]+”,”; if(currentFreqIndex==numoFreqTested-1) 标签1.Text+=“| |”; } else if(initialTestCompleted&&testPerFreqLeft==totalTestPerFreqForMalig) { label3.Text+=testFreqSet[(int)maligTestSeq[currentfrequendex]]+“,”; if(currentFreqIndex==numoFreqTested-1) 标签3.Text+=“| |”; } #端区 leftRightPan=(currentFreqIndex,c#,timer,C#,Timer,我想在上一个音调和下一个音调播放之间有2秒的间隔。你知道怎么做吗?非常感谢。试试看 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 Te

我想在上一个音调和下一个音调播放之间有2秒的间隔。你知道怎么做吗?非常感谢。

试试看

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();   
    }

这使得当前线程处于休眠状态

在我看来,您只需要从处理程序函数调用DoHearingTest(),这应该可以实现这个技巧

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


使用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

请根据需要进行其他更改

我是否将它添加到事件处理程序中?是否希望它每两分钟播放一次?每两秒钟播放一次?这无法工作,因为我有另一个方法确定测试序列。因此,如果我调用方法DoHearingTest(),它必须是DoHearingTest(testseq)。您想查看代码还是能够理解?抱歉,解释得不好谁调用DoHearingTest()?有没有办法从intervalTimer\u处理器函数中获取testseq?您也可以按此处所述将参数传递给处理程序:谢谢,但我有另一个计时器已过处理程序,它调用doHearingTest()。如果您想让我们获得完整的图片,我认为您也应该添加该处理程序代码。我已经根据示例进行了尝试,但它似乎仍然无法工作。我想你可能看错了这个问题。首先,我需要在播放每个音调后暂停2秒。这就是为什么会有计时器。其次,我的代码不会运行2分钟。第三,我不能仅仅调用方法doHearingTest(TestSeq),因为测试序列是由另一个方法决定的。谢谢你。
        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
    void t_Tick(object sender, EventArgs e)
    {
        t.stop();
        doHearingTest(TestSeq); // this is your code to run at every two minute
        t.start();
    }