我在Qt
快速應用程序中使用asio
(僅限獨立標題)。QTimer with asio :: io_service.poll_one()或poll()
由於Qt和asio都有自己的事件循環,如果我理解正確,我使用QTimer
信號調用保存我的asio::io_service
對象的類。
QTimer *timer_io = new QTimer();
QObject::connect(timer_io, SIGNAL(timeout()), &my_INandOUT, SLOT(poll_ios()));
timer_io->start(IO_TIMER);
我已將IO_TIMER設置爲100 ms。我已閱讀文檔asio::io_service.reset()
必須在每個poll()
之後調用。因此插槽poll_ios()
具有下面的代碼:
void INandOUT::poll_ios()
{
// qDebug() << "poll_io signal";
m_io_service.poll_one();
m_io_service.reset();
}
是正確的方式來調用reset()
?還是應該在每個處理程序完成任務後再調用它?安全嗎?或者我可以放鬆asio
事件?
我做的第一件事'asio'是'async_connect',和我的處理程序永遠不會回來如果我不使用'm_io_service.reset()'。謝謝,我會看看QNetworkAccessManager。 – jmatthieu