天天看點

使用boost的deadline_timer實作一個異步定時器

最近在工作上需要用到定時器,然後看到boost裡面的deadline_timer可以實作一個定時器,是以就直接将其封裝成了ATimer類,友善使用,ATimer有以下優點:

可以支援納秒、毫秒、秒、分、小時定時。

可以随時停止定時器。

支援單次調用。

因為使用了deadline_timer,是以定時比較準确。

ATimer和Qt的QTimer使用方法類似,若沒有類似的Timer類,使用最原始的方法,我們的代碼可能會是這樣的:

若使用QTimer的話,書寫是這樣的:

再來看看ATimer的使用:

從上面的例子可以看到,QTimer和ATimer的使用都非常友善,接下來看看ATimer的具體實作:

下面是ATimer的具體使用例子:

繼續閱讀