gpt4 book ai didi

c++ - 在qt中创建另一个网络线程

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:25:14 24 4
gpt4 key购买 nike

我是 qt 的新手,正在尝试创建一个 qt 应用程序。截至目前,应用程序有 1 个运行 libevent 事件循环的线程。我想创建另一个线程(这将是一个负责 ssl 请求的永久网络 qt 线程)。

我创建了 QOBject 的子类 WorkerObject。此外,我还有一个 MyThread,它是 QThread 的子类,它在 run 方法中运行事件循环。我在 main 中创建这个线程,并在应用程序结束时终止它。

我想在 WorkerObject 中进行的所有网络操作(包括发布请求)。我如何以及在何处适本地创建 WorkerObject,以便它的所有信号和信号都在 MyThread 的事件循环内处理。因为例如我需要在用户希望我发送它时调用方法(发送 post/get 请求)。

预先感谢您的回答。

最佳答案

在 QThread 中使用对象的条件是,一旦线程启动,它们必须仅通过信号和槽进行通信。因此,如果 workerobject 需要开始工作,则必须通过信号触发。

看看这个answer on a similar question ,这是推荐的做法。

基本上,您将 Qthread 的启动信号连接到工作对象 starthandlingSSLrequest。然后在调用 starthandlingSSLrequest 对象的地方启动你的线程,如果它不是多线程的话。

每当用户要你做某事时,你只需在主循环中触发信号,随后将执行所有连接的插槽。

关于c++ - 在qt中创建另一个网络线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20393772/

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