9

io_service1 つのグローバル スレッドによって駆動されるグローバルを提供したいと考えています。簡単に言えば、スレッド本体の call があるだけio_service::run()です。ただし、やるべきことがなければrun( run_one, poll, poll_one) が返されるので、それは機能しません。しかし、スレッドが run() を繰り返し呼び出すと、何もすることがないときにビジー ループになります。

io_service で実行する作業がない間にスレッドをブロックする方法を探しています。スレッドをブロックするグローバル イベントをミックスに追加できます。ただし、その場合、 のユーザーはio_service、サービスを使用するたびにイベントを通知する必要があります。理想的なソリューションではありません。

注:実際のグローバルはなく、同時実行のためにイベントを使用することはありません。問題を正確に必要なものまで単純化しただけです。本当の目標は、構築パラメータとして をasio::deadline_timer必要としないサブクラスです。io_service

4

1 に答える 1

21

オブジェクトを作成する必要がありio_service::workます。

ドキュメントの次のセクションを参照してください。

io_service が機能しなくなるのを止める

于 2009-12-21T21:04:17.650 に答える