小弟做一个软件,c#多线程的,一个主线程,处理用户的点击操作,一个辅助线程处理串口送来的数据,用户点击一个按钮,后我发送一些数据出去,下位机返回一些对应的数据,如果收到数据就把一个全局变量 byte mark赋值为0x01;我在按钮的功能函数中睡眠一小会,确保数据已经发送完成,但是,遇到了奇怪的问题,明明数据发送来了,mark赋值操作已经在辅助线程中进行了,但是主线程中的mark依然是老数据(初始赋值0x03),不论你sleep多久。后来吧mark 前面加了修饰符 static,还有volatile,等,均无效;但是偶尔一次,我在主线程中加入了以messbox.show函数,发现数据成功更新,正常了,我晕倒了,这是什么情况,大侠给解释下,总不能总是给弹出对话框吧
小弟做一个软件,c#多线程的,一个主线程,处理用户的点击操作,一个辅助线程处理串口送来的数据,