Win32 windows线程安全吗?
Are Win32 windows thread safe?
我想在一个线程上创建一个窗口,然后将该HWND迁移到将在其上执行的任意数量的线程中的一个。我的程序将有多个这样的窗口。这是可能的还是Win32 API不是为此设计的?
是的,在某种程度上。
您可以从任何线程向HWND发送和发布消息。
http://msdn.microsoft.com/en-us/library/ms644944 (v = VS.85) . aspx
试图从另一个线程配置UI(例如添加控件)将以糟糕的方式结束。但是,如果您向窗口发送消息,则可以确保该消息将在创建线程上处理。
不,这不可能。窗口用于其消息循环的线程(您称之为"在其上执行")是在创建窗口时定义的。您可以创建多个线程并从中启动消息循环(从而在它们上创建窗口),但这通常被认为是危险的。
必须在同一个线程中调用两个重要的调用:CreateWindow
和GetMessage
(或它们各自的等价)。你的解决方案不会,所以它是错误的。
你可以在任何线程中调用PostMessage
。SendMessage
有点危险,因为它在跨线程场景中阻塞,并且可能死锁。
不,这些调用没有并发性检查
相关文章:
- 从不同线程使用int64的不同字节安全吗
- 如何将元素添加到数组的线程安全函数?
- C++中的线程安全删除
- 在std::thread中,joinable()然后join()线程安全吗
- 在c++队列中使用pop和visit实现线程安全
- 以线程安全的方式调用"QQuickPaintedItem::updateImage(const QImage&image)"(no QThread)
- 全局变量 多读取器 一个写入器多线程安全?
- 共享队列的线程安全
- boost::文件系统::recursive_directory_iterator多线程安全
- 静态 constexpr 类成员变量对多线程读取是否安全?
- 以线程安全的方式转换 C/C++ 中时区名称字符串的时区偏移量
- 线程安全运算符<<
- 如何使缓存线程安全
- C++线程安全:如果只有一个线程可以写入非原子变量,但多个线程从中读取. 会遇到问题吗?
- 提升精神 V2 Qi 语法线程安全吗?
- 线程调用的函数对对象删除是否安全?
- asio 链对象线程安全吗?
- 线程安全队列 c++
- 提供对不同类型的数据(建议、代码审查)的线程安全访问的类
- 有没有更好的方法可以使此代码线程安全?线程局部静态似乎是一个生硬的工具