读书人

定时器怎么通知主线程

发布时间: 2012-11-08 08:48:11 作者: rapoo

定时器如何通知主线程?
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;

}
}

尽量保持程序本身输入输出的统一,有助于阅读和理解代码。

读书人网 >C#

热点推荐