關於Symbian的定時器

來源:互聯網
上載者:User

 Symbian裡面,比較常用的定時器是 CPeriodic,其實也就是由 CTimer 實現的,而CTimer 則是一個 使用中的物件(Active Object)。

 

通過查看原始碼發現,使用中的物件所被調用的最小時間片是取自 User::TickCount()。

 

在SDK中,User::TickCount()的注釋如下:

 

 

static IMPORT_C TUint TickCount();

Description

Gets the current tick count.

The period between ticks is usually 1/64 second, but may be hardware dependent.

Return value

 

也就是說,每次使用中的物件最小的時間間隔將會是 1/64 秒。

我嘗試過將CPeriodic的時間間隔分別設 1000000/33 和 1000000/31 微秒,而通過計算其時間間隔,可以發現兩者足足有1倍的差別。

這個最小時間片也限制了 CTimer的精度,它的間隔只能是 1/64 秒的 倍數。

 

這就意味著,使用中的物件並不適合於短時間執行的任務。

 

一個比較好的例子就是 CImageDecoder 。

 

它使用使用中的物件來進行非同步解碼,但是當圖片很小的時候,解碼時間不足1/64秒,那麼時間就被白白浪費了。

 

同步解碼是一個不錯的選擇。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.