Win32窗口类注册线程安全吗?

我目前正在努力使用Win32 API创建线程安全的窗口。我以前的所有应用程序都在静态上下文中使用了单个HWND。现在我想在自定义窗口类中包装多个窗口。在构造函数中,将检查窗口计数器。如果为0,则应调用静态方法register_window_class一次,该方法通常将WNDCLASSEX结构注册到静态HINSTANCE。

static void register_window_class();

相同的原则适用于窗口类的创建,销毁和注销。

现在我不确定那些调用是否是线程安全的。我应该这样做

Window::Window()
{
  if(_WindowCounter == 0)
  {
    register_window_class();
  }
}

或这个

std::mutex _Mutex;   // one mutex per window object    

Window::Window()
{
  _Mutex.lock();

  if(_WindowCounter == 0)
  {
    register_window_class();
  }

  _Mutex.unlock();
}

还是我完全错了?

iCMS 回答:Win32窗口类注册线程安全吗?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1610015.html

大家都在问