我点击一个按钮从上位机发一组指令到下位机,下位机应答返回数据,我在计算机的串口上创建了一个监视线程,只要有一个数据来就放入CString中!可是我发现程序中的CString还是为空啊,非要点击另一个按钮才能看到CString已经赋值了,代码大意如下:
程序一运行串口已经打开并设置好,监视线程已经启动,接受下位机返回数据存入CString str_receive全局变量
C***Dlg::OnButton1()
{
  Read_Data();//向下位机发送读取数据指令
  Sleep(1000);
  CString str;
  str=str_receive;//这里的str_receive为空,为什么没有赋值,设备确实返回了数据啊???????????
}
C***Dlg::OnButton2()
{
  CString str;
  str=str_receive;//这里的str_receive就已经是设备返回的数据了?为什么这里str_receive不为空了呢?}