0

libevent次のコードを追加しました。

while (run) {
  event_base_loop(base, EVLOOP_NONBLOCK | EVLOOP_ONCE);
}

これを次のように比較すると:

event_base_dispatch(base);

これらの2つのステートメントは等しいですか?

4

1 に答える 1

1

いいえ、event_base_dispatch(base)呼び出しは と同等ですevent_base_loop(base, 0)。つまり、イベントの最初のバッチの後に停止することも (dos のようevent_base_loopEVLOOP_ONCE)、イベントの準備ができていない場合にすぐに戻ることもありません (dos のようevent_base_loopEVLOOP_NONBLOCK)。

Nick Mathewson によって書かれた libevent に関する素晴らしい本を読むことをお勧めします: http://www.wangafu.net/~nickm/libevent-book/Ref3_eventloop.html

于 2013-03-12T14:13:37.870 に答える