定时器如何通知主线程?
void main_thread()
{
tmr.start();
//执行代码
while(条件)
{
;
}
}
void tmr_Elapsed(object sender, timers ElapsedEventArgs e)
{
count++;
if(count > 3)
{
tmr.stop();
}
}
想实现的就是计数大于3以后。中止主线程。如何实现?
------解决方案--------------------如果你这个定时器就在主线程,那就直接调用主线程中的函数或变量,如果是其他线程,用委托去通知,google“C# 线程委托”
------解决方案--------------------就if(count > 3)
{
tmr.stop();
mainThread.Abort()
}
就可以了啊
------解决方案--------------------如果定时器的作用仅仅是关闭线程的话,建议你这么做
bool cancelThread = false;
void main_thread()
{
tmr.start();
//执行代码
while(!cancelThread)
{
}
tmr.stop();
}
void tmr_Elapsed(object sender, timers ElapsedEventArgs e)
{
count++;
if(count > 3)
{
cancelThread = true;
}
}
尽量保持程序本身输入输出的统一,有助于阅读和理解代码。