Russian Qt Forum

Qt => Работа с сетью => Тема начата: QCasper от Сентябрь 15, 2010, 11:17



Название: QNetworkAccessManager в отдельном потоке
Отправлено: QCasper от Сентябрь 15, 2010, 11:17
Я полагаю, что при загрузке данных, например с помощью метода QNetworkAccessManager::get, выполняются некоторые действия с участием QTcpSocket и, в итоге, непосредственная загрузка данных производится в отдельном потоке.
Так ли это и есть ли тогда смысл организовывать загрузку данных в отдельном потоке самостоятельно?


Название: Re: QNetworkAccessManager в отдельном потоке
Отправлено: BRE от Сентябрь 15, 2010, 11:22
Я полагаю, что при загрузке данных, например с помощью метода QNetworkAccessManager::get, выполняются некоторые действия с участием QTcpSocket и, в итоге, непосредственная загрузка данных производится в отдельном потоке.
Данные будут грузиться в том потоке, где создан объект QNetworkAccessManager, асинхронно.
Главное, что бы крутился eventloop.

Так ли это и есть ли тогда смысл организовывать загрузку данных в отдельном потоке самостоятельно?
При большом трафике имеет, а так нет.  :)


Название: Re: QNetworkAccessManager в отдельном потоке
Отправлено: QCasper от Сентябрь 15, 2010, 11:28
То есть, если я начну грузить большое количество данных (из GUI потока), то интерфейс таки замёрзнет? Или там какой-то хитрый механизм с участием processEvents?


Название: Re: QNetworkAccessManager в отдельном потоке
Отправлено: BRE от Сентябрь 15, 2010, 11:33
То есть, если я начну грузить большое количество данных (из GUI потока), то интерфейс таки замёрзнет? Или там какой-то хитрый механизм с участием processEvents?
Ну тут не столько количества данных, сколько количества запросов будут иметь значение.
А так да, главный (GUI) поток должен будет это все разгребать.


Название: Re: QNetworkAccessManager в отдельном потоке
Отправлено: QCasper от Сентябрь 15, 2010, 11:36
Понятно, спасибо.