私はQt
クイックアプリケーション内asio
(のみスタンドアロンヘッダ)を使用しています。ASIOとQTimer :: io_service.poll_one()やpoll()
正しく理解すれば、Qtとasioはそれぞれ独自のイベントループを持っているため、私はasio::io_service
オブジェクトを保持するクラスを呼び出すためにQTimer
シグナルを使用します。
QTimer *timer_io = new QTimer();
QObject::connect(timer_io, SIGNAL(timeout()), &my_INandOUT, SLOT(poll_ios()));
timer_io->start(IO_TIMER);
IO_TIMERを100ミリ秒に設定しました。私は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