Название: QNetworkProxy и поток Отправлено: serg_hd от Май 13, 2010, 21:00 Главным потоком создаются второстепенные.
Второстепенный поток может послать 2 сигнала главному: на создание QWebView и на удаление себя же. Второстепенный поток работает с созданным для него в главном потоке QWebView. Проблема в том, что если во второстепенном потоке, для QWebView использовать QNetworkProxy, а именно: Код а потом, после работы с QWebView, слать сигнал на удаление всего потока, то через 2-3-4 мин приложение вылетает с ошибкой чтения памяти. Без использования прокси всё нормально. Деструктор второстепенного потока: Код Удаляется второстепенный в слоте главного обычным delete. Могут быть какие-нибудь рекомендации? Спасибо. Название: Re: QNetworkProxy и поток Отправлено: SimpleSunny от Май 14, 2010, 00:42 Возможно QWebView может работать только в одном потоке?
Когда-то надо было в нескольких потоках анализировать js. Запускал поток, создавал в нем QWebView и выпонял js скрипт, программа странно вылетала. Когда разделил mutex'ами доступ к QWebView, коректно работал QWebView только в одном потоке, в остальных были странности. Потом перенес все в главный и работал через один QWebView. Название: Re: QNetworkProxy и поток Отправлено: serg_hd от Май 14, 2010, 00:46 Возможно QWebView может работать только в одном потоке? Когда-то надо было в нескольких потоках анализировать js. Запускал поток, создавал в нем QWebView и выпонял js скрипт, программа странно вылетала. Когда разделил mutex'ами доступ к QWebView, коректно работал QWebView только в одном потоке, в остальных были странности. Потом перенес все в главный и работал через один QWebView. Без использования прокси всё нормально. Специально выделил же... Название: Re: QNetworkProxy и поток Отправлено: ритт от Май 14, 2010, 01:31 а я подумал, что то была ссылка...
специально вот заглянул в документацию, ибо стало интересно - а что будет, если убрать этот вот this->quit() из деструктора и сделать завершение потока как-нибудь...эммм...иначе? Название: Re: QNetworkProxy и поток Отправлено: serg_hd от Май 14, 2010, 03:01 а я подумал, что то была ссылка... Это чтобы в глаза слишком не бросалось ;D. Хотя да, лучше надо было жирным.... сделать завершение потока как-нибудь...эммм...иначе? например?Просто вопрос, как мне кажется, не в правильности удаления потока, а в том, что остаётся в потоке после использования прокси на момент удаления этого потока. И, собственно, как от этого избавиться. Но это, повторюсь, только так кажется :) Название: Re: QNetworkProxy и поток Отправлено: serg_hd от Май 14, 2010, 16:51 Может быть это возникает из-за несоответствия типов прокси? Напр. в коде указывается http, а она на самом деле https...
Название: Re: QNetworkProxy и поток Отправлено: ритт от Май 14, 2010, 17:05 а ещё можно не гадать, а выложить минимальный проект, воспроизводящий твою проблему, а мы его палочкой потыкаем...
Название: Re: QNetworkProxy и поток Отправлено: serg_hd от Май 14, 2010, 17:17 а ещё можно не гадать, а выложить минимальный проект, воспроизводящий твою проблему, а мы его палочкой потыкаем... Так не получится - прокси выдаются для IP юзера оплатившего их.Сама проблема описана максимально приближённо. Остаётся иногда в потоке что-то такое, из-за чего при удалении потока происходит ошибка чтения/записи, если использовать прокси конечно. В связи с острым недостатком времени приличное вознаграждение нашедшему выход - не вопрос. |