【问题标题】:QUdpSocket and QThreadQUdpSocket 和 QThread
【发布时间】:2015-03-14 22:26:18
【问题描述】:

据我从文档中了解到,QUdpSocket 是异步的,但是当发出信号 readyRead() 时,仍然在 UI 线程上执行从套接字读取。那是对的吗?从性能的角度来看,这安全吗?我应该在另一个线程中读取套接字的内容吗?

【问题讨论】:

    标签: qt sockets qthread


    【解决方案1】:

    一切都取决于您是否需要处理大量数据。我已经使用了 TCP 套接字,其平均传输速度约为 20mbps,而不会阻塞 gui。最好的事情是自己检查。我认为您不必将套接字移动到其他线程

    【讨论】:

    • 我明白了。那么,在您看来,当信号 readyRead() 发生时,是 UI/Main 线程来执行插槽主体吗?
    • 如果对象在这个线程中构造,会在ui线程中处理。但正如我所说,您必须检查您的处理槽是否占用太多。
    • 不,它不需要太多时间,但是如果我能在另一个线程中处理它,我会更高兴。如果我在这个线程中移动套接字对象,我会收到 readData 信号吗?
    • 请记住,简单地添加线程有时并不能使您的程序运行得更快。线程同步有时可能比处理数据本身花费更多时间
    猜你喜欢
    • 1970-01-01
    • 2013-10-12
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多