Qthread中的NetworkAccessManager

时间:2013-09-20 07:36:16

标签: multithreading qt qt4 threadpool qthread

我正在开发一个包含QT4.7中服务器和客户端之间简单数据通信的应用程序。

我需要从客户端背景隐藏同步。

所以我决定使用 Qthread

但是我收到一条错误,我无法将 QnetwrokAccessManager 对象传递给线程。

有什么办法吗?

2 个答案:

答案 0 :(得分:0)

正如Qt docs所说

  

QNetworkAccessManager有一个异步API。

因此您根本不需要使用线程。您唯一需要的是通过信号/插槽评估与QNetworkAccessManager的通信。

答案 1 :(得分:0)

不建议这样做,但您可以使用qnam->moveToThread方法。 QNetworkAccessManager只能在一个线程中执行。我真的不明白,为什么你需要把它传递到某个地方。

在大多数情况下QNetworkAccessManager应该在主线程中执行,但是如果你需要处理许多不修改GUI的网络事件(并且不应该加权GUI线程) - 你可以移动/创建{{ 1}}到/在另一个线程中。

你能否更清楚地编辑你的问题(一些代码示例,你想要做什么)?