• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            一、使用活動對象的原因

            Symbian OS廣泛使用了事件驅動模型,活動對象將傳統的等待循環封裝到一個類中,在同一個線程中運行的活動對象之間切換的代價比線程上下文的切換代價低得多,所以使用活動對象更適合Symbian OS的事件驅動多任務。同樣使用搶占式多線程對于事件處理也不方便,因為搶占式多線程需要通過例如互斥體、信號量等同步原語來保護共享對象,在Symbian OS 要實現共享非常難。所以利用活動對象實現事件驅動模型最為合適。

            注意:一旦一個活動對象在處理事件,它就無法被另一個活動對象的事件處理程序搶占,也就是如果對實時性要求較高的應用,應考慮用高優先級線程和進程來實現。

            二、活動對象的應用

            1、構造

            和線程類似,活動對象也有一個優先級值來決定它們如何被調度。從CActive派生的類必須調用基類中的作為保護成員的構造函數,并傳遞一個參數來設置活動對象的優先級。

            2、提交請求

            活動對象類會向調用者提供公有方法用以發出請求,也就是說通常擁有一個發出異步完成請求、生成事件的對象,例如RTimer類的定時器對象。

            • 請求方法應檢查確認在試圖提交另一個請求之前沒有請求已經被提交。
            • 活動對象應向服務提供者發送請求,傳入其TRequestStatus類型的iStatus成員變量作為參數。
            • 請求成功提交了,請求方法將調用CActive基類的SetActive()方法,向活動調度器指明請求是已經被提交還是現成被選中。

            3、事件處理

            活動對象必須實現CActive基類跌純虛成員函數RunL(),當異步服務提供者完成事件發生,而且活動調度器選擇了活動對象處理該事件時,調用活動對象的RunL()函數。

            image

            注意:每個活動對象必須通過實現基類CActive的成員純虛函數RunL()來處理完成事件。

            4、撤消

            調用Cancel()進行撤消,該方法調用純虛函數DoCancel()。用戶需要重載DoCancel(),進行撤消工作以及請求相關的必要清除工作。

            5、錯誤處理

            活動對象提供了RunError()虛函數,當活動對象的RunL()方法發生異常退出時,活動調度器調用這個方法。

            6、析構

            CActive派生類的析構函數在清除過程執行前總是坑用Cancel()來中止所有選定的請求。

            (未完待續)

            Posted on 2009-06-21 21:17 曾浩 閱讀(1476) 評論(0)  編輯 收藏 引用 所屬分類: C/C++Symbian
            久久久久久a亚洲欧洲aⅴ| 久久久久久一区国产精品| 亚洲va国产va天堂va久久| 色婷婷综合久久久久中文一区二区| 色妞色综合久久夜夜| 亚洲国产婷婷香蕉久久久久久 | 久久精品人妻一区二区三区| 午夜精品久久久久成人| 久久亚洲AV成人出白浆无码国产| 国产精品久久波多野结衣| 欧美一区二区久久精品| 国产亚洲色婷婷久久99精品| 亚洲国产成人久久综合一区77| 无码超乳爆乳中文字幕久久| 欧美亚洲另类久久综合婷婷| 国产精品久久毛片完整版| 久久久亚洲欧洲日产国码是AV| 久久精品一区二区国产| 伊人久久无码中文字幕| 久久综合色区| 国内精品久久九九国产精品| 亚洲中文字幕无码一久久区| 欧美亚洲日本久久精品| 久久精品无码一区二区日韩AV| 久久久噜噜噜久久中文福利| 精品久久人人爽天天玩人人妻| 99久久国语露脸精品国产| A级毛片无码久久精品免费 | 偷偷做久久久久网站| 久久久久黑人强伦姧人妻| 99久久无码一区人妻| 久久亚洲国产欧洲精品一| 久久精品麻豆日日躁夜夜躁| 国产精品亚洲综合久久| 久久中文字幕人妻丝袜| 欧美精品乱码99久久蜜桃| 综合久久精品色| 久久无码AV中文出轨人妻| 久久精品成人欧美大片| 久久久久久久久波多野高潮| 狠狠色丁香久久婷婷综合_中 |