控件的.BeginInvoke(new Action(() =>...))语句被执行了两遍?
理解编程逻辑:条件语句和循环控制 #生活知识# #编程教程#
一个线程,监视串口接收事件:
void SenMonitor(object sPort)
{
//发送缓冲区空 or 有字符收到 or 接收帧错误
MyCom.SetComMask(EV_TXEMPTY | EV_RXCHAR | EV_ERR);
//------------------------------------------------------------
while (rec_sw)
{
uint ComMask = MyCom.WaitComEvent();
if (ComMask > 0)
{
string tmp = "";
tmp = "串口事件" + ComMask.ToString("X2") + "\r\n";
txtRec.BeginInvoke(new Action(() => txtRec.Text += tmp));
switch (ComMask)
{
case EV_TXEMPTY:
{ break;. }
case EV_RXCHAR:
{
eTime = DateTime.Now.Ticks;
allTime = ((Single)(eTime - sTime) / 10).ToString();
//---------------------------------
uint req = MyCom.GetReceQueu();
//---------------------------------
if (req == 13)
{
byte[] r_Buf = new byte[13];
int num = MyCom.Read(ref r_Buf, 13);
tmp = "读到字符=" + num.ToString() + "\t";
for (int i = 0; i < num; i++)
tmp += r_Buf[i].ToString("X2");
MyCom.ClearReceiveBuf();
}
else
tmp = "收到字符=" + req.ToString() + "\t";
tmp += "\t耗时=" + allTime + "\r\n";
//下面这句,莫名其妙执行了两遍!!
txtRc.BeginInvoke(new Action(() => txtRec.Text += tmp));
break;
}
case EV_ERR:
{ break; }
}//switch(ComMask) end
}//if(ComMask>0) end
}//While(rec_sw) end
}
网址:控件的.BeginInvoke(new Action(() =>...))语句被执行了两遍? https://www.yuejiaxmz.com/news/view/943785
相关内容
Thread问题,单线程,单线程与UI线程Python2语法简记(4、5):条件语句、循环语句
自动化测试工具第三章 qp高级使用.ppt
毕业设计,基于语音控制的智能家居控制系统
经典String str = new String(“abc”)创建了几个对象?(转)
python中的print()语句中的end=''是什么意思
给DropDownList 控件加上“==请选择==”选项
关于生活哲理的英文语句110句
英语谚语大全
英文版心灵鸡汤经典语录(精选125句)