在串口DataReceived中停止、启动定时器
如题,我想在串口的DataReceived中停止一个定时器,然后再在别的地方启动这个定时器,但是启动不了。
而我在DataReceived中,启动一个定时器也启动不了。(不执行timer_Tick)
这个是什么情况啊?大神们来帮帮忙啊,小弟第一次写串口通信,有点晕。先谢过!~
------解决方案--------------------
因为这是跨线程操作,虽然没报异常,但实际上即使启动了定时器,但定时器也不会正常工作,用Invoke执行对定时器的启动即可。或者使用System.Timer名称空间下的定时器,这样即使在DataReceived事件里对定时器进行启动或关闭也是有效的
该怎么写啊?完全是晕的。比如:我要在DataReceived中停止定时器1,启动定时器2
你去看下委托,举个简单的例子
//在DataReceivede写下面这句:
this.Invoke(new EventHandler(handleTimer));
//委托方法
private void handleTimer(object sender,EventArgs e)
{
timer1.Stop();
timer2.Start();
}