2013-09-20 4 views
0

Я разрабатываю приложение, которое содержит простую передачу данных между сервером и клиентом в QT4.7.NetworkAccessManager в Qthread

Мне нужна фоновая скрытая синхронизация со стороны клиента.

Таким образом, я решил использовать Qthread.

Но я получаю сообщение об ошибке, что я не могу передать QnetwrokAccessManager объектов в тему.

Есть ли способ сделать это?

+0

Зачем вам нужны темы? Сеть Qt работает асинхронно. – vahancho

ответ

0

Qt docs Как говорят

QNetworkAccessManager имеет асинхронный API.

Таким образом, вам не нужно использовать нитки вообще. Единственное, что вам нужно - это оценить связь с вашим QNetworkAccessManager через сигналы/слоты.

0

Не рекомендуется, но вы можете использовать метод qnam->moveToThread. QNetworkAccessManager должен выполняться только в одном потоке. Я действительно не понимаю, зачем вам это нужно.

В большинстве случаев QNetworkAccessManager должен выполняться в основном потоке, но если вам нужно обработать много сетевых событий, которые не изменяют графический интерфейс (и не должны быть взвешенными потоками графического интерфейса пользователя) - вы можете перемещать/создавать QNetworkAccessManager в/в другой нить.

Не могли бы вы изменить свой вопрос, чтобы быть более ясным (некоторые примеры кода, что вы пытаетесь сделать)?

Смежные вопросы