Win32 windows线程安全吗?

Bry*_*man 5 c++ windows winapi

我想在一个线程上创建一个窗口,然后让HWND迁移到它将执行的任意数量的线程之一.我的程序将有多个这样的窗口.这是可能的还是Win32 API不是为此而设计的?

And*_*vis 10

是的,在一定程度上.

您可以从任何线程向HWND发送和发送消息.

http://msdn.microsoft.com/en-us/library/ms644944(v=VS.85).aspx

尝试从另一个线程配置UI(例如添加控件)将非常糟糕.但是,如果向窗口发送消息,则可以确保在创建线程上处理消息.


Ada*_*son 6

不,这是不可能的.窗口用于其消息循环的线程(您称之为"正在执行")在创建窗口时定义.您可以创建多个线程并从它们启动消息循环(从而在它们上创建窗口),但这通常被认为是危险的.

  • @BrendanMcK:是的; 诚然,我来自与.NET开发人员打交道,在这些开发人员中,创建GUI应用程序和其他线程的难易程度会导致人们在处理两者的组合时产生错误的安全感. (2认同)