2012-01-04 59 views
3

我發現ACE結束了反應器的事件循環的方法有兩種:如何結束王牌反應堆事件循環

1. ACE_Reactor::instance()->end_reactor_event_loop(); 
2. ACE_Reactor::instance()->close() 

它們之間有什麼區別?我應該使用哪個?

回答

3

取決於你想要做什麼:

看看this documentation

基本上2之間的區別是:

end_reactor_event_loop由反應堆停止消息的處理,但不免費資源並且不會丟棄已經在隊列中的任何消息。

,另一方面會做以上,並釋放與ACE_Reactor::intance()的實施有關,因此下探刪除與反應堆有關的所有插座和處理信息的所有資源close

所以這取決於你是什麼你可以選擇其中一種或另一種以外的方式來提供更多細節。

+0

我嘗試了析構函數中的end_reactor_event_loop(),並花了30秒關閉。關閉()需要幾秒鐘。 – Hoto 2014-03-11 08:00:51

+0

簡單但精心的回答,它對我有很大的幫助。 – 2017-06-15 05:23:20