日期:2014-05-17  浏览次数:21093 次

C# 关于串口 和定时器
        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            if (this.serialPort1.ReadBufferSize>0)
            {
                int count = this.serialPort1.Read(ReceBuf, 0, RecComMax);
                ReceBufAddPos = count;
                if (count != 0)
                {
                    timer1.Interval = 50;
                    timer1.Enabled = true;
                    timer1.Start();
                }
            }
        }
        private void timer1_Tick(object sender, EventArgs e)
        {

            ReceiveDatafun();
        }

我是想做一个在串口接收中开启定时器的,,但是进不了timer1_Tick,,网上查了一下,说要写委托函数的,搞来搞去都不对,,求教
定时器 串口 C#

------解决方案--------------------
为什么要在串口的接收事件里面启动一个时间控件?觉得你的逻辑有点不合理,这个也没有跨线程操作,不用委托吧
------解决方案--------------------
目测运行到count!=0下面的代码段会抛异常,Timer不是在串口的监听线程创建的话,访问要用Invoke