我一开始以为这个MessageBox跟Delphi里面的ShowMessage是一样的,程序里可以随便放,因为C#里面就TM这一个封装好的弹出对话框提示消息函数,可以直接用的。
结果实习做程序测试被坑爹了,发现我错了,C#这个MessageBox默认是模态对话框,是阻塞的,也就是说你不区点击okNOCancel他一直显示在那里程序里后面的代码是停止的不往后执行,但是主程序仍然会响应其他消息,比如Timer事件,造成时序逻辑混乱。
原来随手写的是这样:
private void ReadOTPDataHandle()
{
if (xxxxxx) //若命令字和地址都正确
{
xxxxxxxxxxxx;
}
else
{
MessageBox.Show("ERROR: communication data verify error!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
cmdptr = 0;
mode = 4;
comok = 100;
Btype = Type.Bu_no_type;
}
}
</pre><p></p><pre>
</