我用一个对话框实现了自定义的splashscreen,我想实现在满足一定条件下splashscreen才能关闭,显示出主界面,我程序是这样写的myapp.cpp:
 StartDialog dialog(NULL);
  dialog.Show();
  wxYield();
  while(!states[11].flag)
  {
  Sleep(600);
  }
  dialog.Destroy();
  if ( wxsOK )
  {
  myFrame* Frame = new myFrame(0);//启动主界面
  Frame->Show();
  SetTopWindow(Frame);
  }
return wxsOK;
我在startdialog类中使用一个单独的线程来监控states[16].flag和states[17].flag的值,如果states[16].flag&&states[17].flag)==1我就将states[11].flag赋值为1就可以退出while 循环了
void *MyThread::Entry()
{
  bool stopWhile = TRUE;
  while(stopWhile)
  {
  if((states[16].flag&&states[17].flag) == 1)
  {
  values[7].value = 13;
  states[16].flag = 0;
  states[11].flag = 1;
  stopWhile = FALSE;
  }
  }
  return NULL;
}
可是程序运行好像就在while中无限循环了,根本就没执行startdialog中的线程。
我该怎样实现根据特定条件控制splashscreen关闭呢???