欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-19 16:30:13
...

出现使用了未使用的内存问题,一般是弹出以下窗口:
Qt 跨线程初始化变量,程序奔溃(Error - RtlWerpReportException failed with status code :-1073741823.)
以及输出窗口会显示以下内容:

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

相关标签: qt 线程 内存