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

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

            二、活動對象的應(yīng)用

            1、構(gòu)造

            和線程類似,活動對象也有一個優(yōu)先級值來決定它們?nèi)绾伪徽{(diào)度。從CActive派生的類必須調(diào)用基類中的作為保護成員的構(gòu)造函數(shù),并傳遞一個參數(shù)來設(shè)置活動對象的優(yōu)先級。

            2、提交請求

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

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

            3、事件處理

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

            image

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

            4、撤消

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

            5、錯誤處理

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

            6、析構(gòu)

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

            (未完待續(xù))

            Posted on 2009-06-21 21:17 曾浩 閱讀(1476) 評論(0)  編輯 收藏 引用 所屬分類: C/C++Symbian
            一极黄色视频久久网站| 久久久无码精品亚洲日韩蜜臀浪潮| 亚洲va久久久噜噜噜久久男同 | 久久人人爽人人爽人人av东京热| 久久久久久伊人高潮影院| 99国产精品久久| 午夜精品久久久久| 狠狠色丁香久久综合五月| 免费精品久久久久久中文字幕 | 77777亚洲午夜久久多人| 91亚洲国产成人久久精品| 久久精品国产亚洲AV影院| 精品一久久香蕉国产线看播放 | 精品久久香蕉国产线看观看亚洲| 一本大道久久香蕉成人网| 精品久久久噜噜噜久久久| 久久午夜福利无码1000合集| 999久久久免费国产精品播放| 亚洲人成伊人成综合网久久久| 久久青青草原精品国产软件| 久久这里只有精品18| 久久综合久久综合亚洲| 97久久精品人人做人人爽| 精品无码久久久久久午夜| 亚洲午夜福利精品久久| 久久久久人妻一区精品| 国产一区二区三精品久久久无广告| 国产精品美女久久久久久2018| 99久久国产宗和精品1上映| 久久亚洲中文字幕精品一区| 精品久久久久成人码免费动漫 | 久久婷婷国产剧情内射白浆| 久久99精品久久久久久9蜜桃| 国内精品久久久久久久涩爱| 国产69精品久久久久99| 久久久久国产一级毛片高清版| 国内精品久久久久久99蜜桃| 国产精品九九九久久九九| 93精91精品国产综合久久香蕉| 久久精品三级视频| 欧美日韩成人精品久久久免费看|