• <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>
            天空之城
            new,think,program,happy to live
            posts - 39,comments - 39,trackbacks - 0
            ?? Callback ? Function: ? 回調函數 ?
            ? ? ? ? ? 在侯sir的<<深入淺出>>中一開始就提出了這個概念,大概的提法是說回調函數是操作系統調用而你永遠不要去調用的函數。這個提法讓初學者有點望而生畏,以為是一種多么高深而難以領會的系統底層的核心技術。其實不然,這個技術本質很簡單,而且很常用。它實質就是函數指針的基本運用(如果不知道什么是函數指針的話,翻翻書)。在一個模塊中,有時想讓一部分功能由其它模塊實現,譬如說一個做顯示的模塊,它只想實現顯示的資源配備,畫面的刷新,縮放等,而把畫具體實體(譬如圓、多邊形)的代碼放到別的模塊來實現,怎么辦呢?用函數指針。在自己的類中放一個畫圓的函數指針,使用時由外部為這個函數指針賦值(其實就是指向了一個外部的函數),在自己的代碼中直接調用這個函數指針來畫就可以了(本模塊完全不知道外部模塊是怎么畫圓的)。那個外部的函數在這里就是回調函數! ?
            ? ? ? ? ? 在很多系統API中就使用了這種函數回調的方法,讓我們開發的代碼實現可以嵌入到API的代碼實現當中,其實我們就是傳了一個函數地址給它而已。換句話說,這些API搭好了某些運行的代碼框架,我們來為它具體實現。在自己的代碼中這種技術也常常被用到。舉個典型的例子,寫COM(串口)讀寫代碼時,常常單獨實現一個模塊來讀寫串口,而這個模塊則開放一個回調函數接口,使得每讀完若干字節數據(譬如說自定義通訊數據的一幀)就調用一次這個函數,而這個函數是由上層調用模塊實現的,具體進行數據的解析、處理。這就是回調。這有什么好處呢?實現了功能的分離,這個串口模塊會有良好的重用性。還不明白的話,請仔細想想:) ?
            ? ?
            ? ? ? ? ? 守護進程 ?
            ? ? ? ? ? 這個概念我更拿不準了。好像這是指從系統開始一直到系統結束一直在運行,長駐內存的線程。譬如說Win32的很多服務進程,都可以稱作守護進程。守護進程往往會獲得較高的系統核心等級,使得不容易被kill掉。因其特點,一些病毒,監控程序往往實現為守護進程。當然,這絕不是把程序放到“啟動”中可以實現的,那個時候啟動,已經太晚。我猜想(沒真正做過)要實現的話,可以注入到一些系統核心DLL里,一旦這些DLL啟動時激活自己的進程,或者實現為Windows的服務進程,常規編程里很少使用到這個技術。
            posted on 2006-05-14 12:58 太極虎~宏 閱讀(129) 評論(0)  編輯 收藏 引用
            伊人久久国产免费观看视频 | 女同久久| 久久久久久久亚洲精品| 日韩欧美亚洲综合久久影院Ds | 2021国内久久精品| 亚洲国产精品无码久久98| 久久精品视频网| 久久久高清免费视频| 久久香蕉国产线看观看99| 久久亚洲国产精品五月天婷| 香蕉久久夜色精品升级完成| 99精品久久精品一区二区| 久久精品一区二区影院| 四虎国产精品成人免费久久| 99久久99久久精品国产片果冻| 亚洲国产精品久久久久婷婷老年| 91精品国产色综合久久| 久久久久高潮综合影院| 久久99精品久久久久久久久久| 亚洲国产精品成人久久蜜臀 | 四虎亚洲国产成人久久精品| 欧美久久久久久| 色天使久久综合网天天| 88久久精品无码一区二区毛片 | 色成年激情久久综合| 韩国无遮挡三级久久| 精品久久久久久国产| 91精品国产91久久综合| 看久久久久久a级毛片| 丰满少妇人妻久久久久久4| 人妻丰满?V无码久久不卡| 97久久超碰国产精品旧版| 久久国产视频99电影| 久久国产午夜精品一区二区三区| 亚洲天堂久久久| 久久夜色精品国产噜噜亚洲a| 精品久久香蕉国产线看观看亚洲 | 亚洲中文字幕无码久久精品1| 天天综合久久一二三区| 99999久久久久久亚洲| 久久精品卫校国产小美女|