MFC一个线程循环更新变量,一个线程循环读取变量,读取变量读不出更新后的值,求解~

我在MFC中定义一个变量number为空,A线程中循环给变量赋值,另一个线程B在死循环不断打印变量number,但一直都是空,该怎么处理才能得到赋值后的值。

void CTestWeb::OnAbcdefg() 
{
 AfxBeginThread(ThreadProcA, NULL);      // 启动线程A
 AfxBeginThread(ThreadProcB, NULL);      // 启动线程B
}


UINT ThreadProcA(LPVOID pParam)
{
  int i=0;
  while (1){
    number = i;
    i++;
  }

 return 0;
}


UINT ThreadProcB(LPVOID pParam)
{
 while (1)
    {
        if (number!= "")
        {
            MessageBox("有值了");
        }
        else {
            MessageBox("无");
        }
    }
 
 return 0;
}
然后一直返回无 应该怎么处理才能让线程B 循环能够获取到线程A 赋值后的number
我尝试过加临界区 两个线程都对 操作number的地方使用临界区锁上,但是线程都是死循环 等待不到结果 没有返回貌似
求解

img

可以试试看把那个变量定义成static的类成员,也可以去看看单例模式