CWnd::Create 会产生一个新线程吗?
Posted
技术标签:
【中文标题】CWnd::Create 会产生一个新线程吗?【英文标题】:Does CWnd::Create spawn a new thread? 【发布时间】:2014-12-07 21:32:17 【问题描述】:H,
我有一个旧的 MFC 应用程序,它有一个继承自 CWnd 的类。我正在与原作者交谈,他说 Cwnd::Create() 会创建一个新线程。但是,我在 MSDN 文档 http://msdn.microsoft.com/en-us/library/0yhc9kx4.aspx
中找不到对此的任何引用任何人都可以确认当调用 Cwnd 时 Create() 有一个新线程启动。一个指向一些解释它的文档的链接将是完美的。
谢谢
【问题讨论】:
我认为他对 CWinThread 感到困惑。 也许吧。这是他 8 多年前写的东西,我也一直在添加功能。考虑到我很难记住我上个月所做的事情,我对他记得的事情感到惊讶! 【参考方案1】:Microsoft 提供了 MFC 的源代码as described here,因此您可以自己检查 MFC 源代码并确切了解它的作用。 CWnd::Create的实现见C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\src\mfc\wincore.cpp,很明显没有创建新线程。
【讨论】:
谢谢 我不知道 Icode 抓取代码。感谢您证实我的怀疑。以上是关于CWnd::Create 会产生一个新线程吗?的主要内容,如果未能解决你的问题,请参考以下文章
如果任务产生不同的线程,Serial DispatchQueue 会等待吗
oracle更新一行数据,另一个会话读取是为啥会产生2个CR块?
面试官:ThreadLocal 为什么会内存泄漏吗?是怎么产生的?面试必问!