如何使计时器滴答声事件中断另一个函数C++/CLI 我是C++的新成员,我来自嵌入式C++的背景。我已经创建了一个温度控制块,可以与PC通信以设置/读取温度
我试图创建一个程序,在不同的温度下循环,每隔1秒读取读数。我使用了一个“Forms Timer”,它应该每秒钟都在计时,并创建一个“事件”,就像嵌入式C一样,应该“中断”我的BtnTestTemp_Click()函数如何使计时器滴答声事件中断另一个函数C++/CLI 我是C++的新成员,我来自嵌入式C++的背景。我已经创建了一个温度控制块,可以与PC通信以设置/读取温度,c++,events,timer,C++,Events,Timer,我试图创建一个程序,在不同的温度下循环,每隔1秒读取读数。我使用了一个“Forms Timer”,它应该每秒钟都在计时,并创建一个“事件”,就像嵌入式C一样,应该“中断”我的BtnTestTemp_Click()函数 private: System::Void LogTempTimer_Tick(System::Object^ sender, System::EventArgs^ e) { GetTemp_Click(sender, e); tempreadingNb++;
private: System::Void LogTempTimer_Tick(System::Object^ sender, System::EventArgs^ e) {
GetTemp_Click(sender, e);
tempreadingNb++;
}
private: System::Void BtnTestTemp_Click(System::Object^ sender, System::EventArgs^ e) {
//SET TO ROOM TEMP
this->TempSet->Text = "2500";
SetTemp_Click(sender, e);
//WAIT UNTIL 2500 +/- 1
while ((currenttemp > 2600)||(currenttemp < 2400)) {}
}
private:System::Void log试探计时器\u勾选(System::Object^sender,System::EventArgs^e){
GetTemp_单击(发送者,e);
tempreadingNb++;
}
私有:系统::Void BtnTestTemp_单击(系统::对象^sender,系统::事件参数^e){
//设为室温
此->临时设置->Text=“2500”;
SetTemp_单击(发送者,e);
//等到2500+/-1
而((当前温度>2600)| |(当前温度<2400)){}
}
当不在我的BtnTestTemp_Click()函数中时,计时器工作正常,我可以看到它每秒调用LogTestTimer_Tick()事件。但是,在我的while循环中:
while ((currenttemp > 2600)||(currenttemp < 2400)) {}
while((当前温度>2600)| |(当前温度<2400)){}
永远不会调用LOGTELTIMER_Tick()函数,也永远不会更新当前温度
为什么在另一个函数期间不触发该事件?我应该怎么做才能让它“中断”另一个函数
谢谢。这种计时器是为单线程应用程序设计的。即当前在按钮单击中执行的同一线程将用于执行计时器滴答声。因此,在另一个事件完成之前,它无法执行该事件
查看System.Timers中的计时器,了解可在多线程环境中使用的计时器。该类型的计时器适用于单线程应用程序。即当前在按钮单击中执行的同一线程将用于执行计时器滴答声。因此,在另一个事件完成之前,它无法执行该事件 查看System.Timers中的计时器,了解可在多线程环境中使用的内容