您的位置:首页 > 编程语言 > Qt开发

Qt 跨线程初始化变量,程序奔溃(Error - RtlWerpReportException failed with status code :-1073741823.)

2017-05-11 09:38 831 查看
出现使用了未使用的内存问题,一般是弹出以下窗口:



以及输出窗口会显示以下内容:

Error - RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly
Error - Failed to create the process C:\Windows\system32\WerFault.exe
Error - StartCrashVertial failed


首先可以明确出现该问题的原因是使用了未初始化的指针,应该要查找在哪里使用了野指针,然后解决即可。

而比较麻烦的情况是跨线程初始化变量问题,利用信号槽对另一个线程的变量进行初始化,而紧接着又对其进行connect,由于线程执行顺序问题,如果一个对象未被初始化而被connect,一般调试下会跳进qobject中报错,并且在报错中可以看到是关于connect的。

解决办法:

通过信号槽在A线程中对B线程的变量初始化时,在connect函数的第5个参数使用Qt::BlockingQuequeConnection 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐