MFC多线程写log文件出现错误

日期:2021-08-22 01:37:39 人气:1

MFC多线程写log文件出现错误

代码Log::WriteLog(CString strLogInfo)里有一个严重的问题
你把栈临时变量的地址传入线程里运行了,由于线程运行又是异步的,即可能WriteLog函数返回了,线程还没开始运行,WriteLog返回后strLogInfo变量就被自动清理了,所以你传入线程里的参数其实是无效的,访问会出现崩溃;
有两种改法
1、使用new CString字符串,再传入线程里,然后线程里用完后delete释放
2、等待线程退出,但这样WriteLog函数就会卡
    A+
热门评论