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秒的间隔。知道如何做到这一点?非常感谢。
答案 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);
打破了当前的线程睡眠