gpt4 book ai didi

multithreading - 从另一个线程读取Qt小部件可以吗?

转载 作者:行者123 更新时间:2023-12-03 13:16:55 25 4
gpt4 key购买 nike

我发现许多回答说从另一个线程访问Qt Gui Widgets是不安全的。如果我们尝试修改小部件,我同意这一点。但是,如果我只读取小部件的值而不进行任何修改,该怎么办?
我使用Qt设计了一个GUI工具,我的工作线程直接读取Widget,例如,获取QLineEdit的文本,获取QComboBox的值等。而且我还没有发现任何问题。
我将MainWindow的指针传递给工作线程。
这真的不安全吗?

最佳答案

首先:在不保护内存(MutexSignal & Slot)的情况下从另一个线程读取属性始终是一个坏主意。

您的情况:如果什么都不想改变值,那么您应该没事。如果每个线程仅读取该值,则没有问题。但是,例如,如果通过单击向上箭头向下箭头来更改QComboBox的值,则选择一个新项(我希望您会这样做,因为这就是使用QComboBox的原因)的值将会被写入,如果您的工作线程想要在同一时刻读取该值,则应用程序可能会导致崩溃(是否发生卡什取决于您的线程提取信息的频率)。

您的应用程序从未崩溃,因为这种情况从未出现过。
但这并不意味着这不可能发生。

关于multithreading - 从另一个线程读取Qt小部件可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53058849/

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