gpt4 book ai didi

c++ - QThread和notify的实现

转载 作者:行者123 更新时间:2023-11-30 01:43:14 25 4
gpt4 key购买 nike

在多线程Qt应用中重新实现notify函数需要注意什么?这是一个示例实现。 目前没有错误,但我担心会出现错误,因为Qt中的多线程使用信号槽进行通信,使用通知功能。

TApplication::notify(QObject *receiver, QEvent *event)
{
bool returnValue(false);
try
{
returnValue = QApplication::notify(receiver, event);
}
catch (IExceptionBase& e)
{
if (!fMain.isNull())
{
//report error to output and file log
}
else
{
//report error to output
}
}
catch (...)
{
if (!fMain.isNull())
{
//report error to output and file log
}
else
{
//report error to output
}
}
return returnValue;
}

fMain 是一个具有报告功能的模块

最佳答案

在 Qt5 中,这是安全的。然而,from the documentation ,在 Qt6 中,这将不再在主线程之外工作,事实上,该函数正在考虑在 Qt6 中完全弃用。

正如 Kuba Ober 指出的那样,重新实现 notify 来捕获异常是一个坏主意,因为其他线程中的事件和任何排队的信号都是异步传递的。

关于c++ - QThread和notify的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38144000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com