MFC 创建用户界面线程出错 提示内存不足解决方法

时间:2021-08-20 18:18:30
MFC 创建用户界面线程时,书上说是用推荐使用AfxBeginThread()来一次性地创建并启动一个线程,如写如下代码:
CWinThread *pThread = AfxBeginThread(RUNTIME_CLASS(CUIThread), 0, 0);

其中AfxBeginThread函数各个参数参照MSDN.


但是这么用了之后,运行程序以后,创建 新线程时会出错,提示:内存不足。


解决方法:不要用 AfxBeginThread 创建线程

                     改为  CUIThread* pthread = new CUIThread();
pthread->CreateThread();

                  先构造线程,然后调用CreateThread()开启线程。


这个问题据说是和编译器有关。用VS2013或者VS2015开发的工程会有这个问题。具体原因待研究。