a+=1; 這條指令必須在dosomething()方法執(zhí)行完畢返回結(jié)果后才可以執(zhí)行,否則就亂了套
棲霞網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司于2013年開始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
異步:異步概念和同步相對(duì),當(dāng)一個(gè)異步過程調(diào)用發(fā)出后,調(diào)用者不能立刻得到結(jié)果。實(shí)際處理這個(gè)調(diào)用的部件在完成后,通過狀態(tài)、通知和回調(diào)來通知調(diào)用者(百度上抄的)。理解了同步概念后異步也就不難理解了,以javascript的ajax為例
ajax(arg1,arg2,function(){
//回調(diào)函數(shù)
a=3;
});
a=4;
這個(gè)代碼段執(zhí)行完成后一般情況會(huì)把a(bǔ)賦值為3而不是4,因?yàn)樵赼jax方法調(diào)用后,a=4;這條語句并沒有等待ajax()返回結(jié)果就執(zhí)行了,也就是在ajax()執(zhí)行完成調(diào)用回調(diào)函數(shù)之前,a=4;已經(jīng)執(zhí)行了,回調(diào)函數(shù)再把a(bǔ)賦值為3使之成為最后結(jié)果,為此在ajax調(diào)用中我們經(jīng)常會(huì)使用回調(diào)函數(shù),其實(shí)在很多異步處理中我們都會(huì)使用到回調(diào)函數(shù)。
阻塞
阻塞操作是指,在執(zhí)行設(shè)備操作時(shí),若不能獲得資源,則進(jìn)程掛起直到滿足可操作的條件再進(jìn)行操作。
先聲明一個(gè)委托:
Public Delegate Function EnumChildProc(hwnd As Integer, iParam As Integer) As Integer
然后才能使用回調(diào)函數(shù),回調(diào)函數(shù)的參數(shù)要和委托完全一致。
然后那個(gè) API 函數(shù)需要這樣聲明:
Declare Function EnumChildWindows Lib "user32" (hWndParent As Integer, lpEnumFunc As EnumChildProc, lParam As Integer) As Integer
你先定義一個(gè)公用變量
將你獲得的hwdn傳遞到這個(gè)公用變量上
再調(diào)用這個(gè)公用變量不久可以了么