gpt4 book ai didi

c++ - 从 C++ 中的多个线程调用 Qt 中小部件类的信号函数是否安全?

转载 作者:行者123 更新时间:2023-11-28 07:27:30 24 4
gpt4 key购买 nike

同时从多个线程调用小部件的信号函数是否安全?当多个线程同时调用某个 widget 的信号时,Qt 会使用某种内部互斥来提供其自身数据结构的安全性吗?

据我所知,这是安全的,N 个信号函数的同时调用将导致连接信号的 N 个顺序调用。

我说的对吗?

附言调用信号函数的线程是用 boost 创建的。我认为,这对于这个问题并不重要。我不能使用其他线程,因为该线程不仅与 GUI 相关,而且它们服务于程序的许多部分。

最佳答案

简而言之,您不调用信号,而是发出信号。然后 Qt 在内部处理信号连接到的任何插槽的触发。

根据连接类型的不同,发出信号并使其触发槽可能是线程安全的,也可能不是线程安全的。

阅读here获取更多信息。

而且我认为由 boost 创建的线程将是一个问题——信号/槽机制依赖于 QThread 和 QObject 的基础结构。如果您可以使用 QThread 而不是 boost 线程,它可能会更好更简单。

关于c++ - 从 C++ 中的多个线程调用 Qt 中小部件类的信号函数是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18477448/

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