<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > wince 等待函數

wince 等待函數

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

等待函數是使一個(gè)線(xiàn)程自愿進(jìn)入等待狀態(tài),直到指定的內核對象被出發(fā)為止。注意如果線(xiàn)程在調用的一個(gè)等待函數的時(shí)候,相應的內核對象已經(jīng)處于觸發(fā)狀態(tài),那么線(xiàn)程是不會(huì )進(jìn)入等待狀態(tài)的。等待函數經(jīng)常用來(lái)阻塞線(xiàn)程來(lái)進(jìn)行同步,在IST中用到來(lái)等待相應的中斷事件。常用的等待函數是:WaitForSingleObject()。函數原型如下:

本文引用地址:http://dyxdggzs.com/article/201609/304604.htm

DWORD WaitForSingleObject(

HANDLE hObject,

DWORD dwMilliseconds);

第一個(gè)參數hObject代表要等帶的內核對象,第二個(gè)參數dwMilliseconds代表要等待的毫秒數。如果到等待的時(shí)間到達,內核對象還沒(méi)有被觸發(fā),則函數返回等待超時(shí)。

在wince中可以用來(lái)被等待的內核對象有:進(jìn)程,線(xiàn)程,作業(yè),文件以及控制臺的標準輸入流/輸出流/錯誤流,事件,可等待的計時(shí)器,信號量,互斥量。其中事件,可等待的計時(shí)器,信號量以及互斥量是windows提供的專(zhuān)門(mén)用來(lái)線(xiàn)程同步的內核對象。

對第二個(gè)參數經(jīng)常傳遞INFINITE,就是0xFFFFFFFF(-1)。當傳遞INFINITE的時(shí)候代表如果等待的內核對象永遠不被觸發(fā),那么調用的線(xiàn)程就永遠不會(huì )被喚醒,它會(huì )一直等待下去。當然在等待的過(guò)程中并沒(méi)有占用CPU。

函數的返回值代表為什么調用線(xiàn)程又能夠繼續執行(線(xiàn)程進(jìn)入就緒狀態(tài))。

WAIT_OBJECT_0:代表等待的內核對象被觸發(fā)。

WAIT_TIMEOUT:代表等待超時(shí)。

WAIT_FAILED:代表傳入的無(wú)效的參數,這時(shí)調用GetLastError可以獲得更為詳細的信息。

WaitForSingleObject是等帶一個(gè)內核對象被觸發(fā)。而WaitForMultipleObjects允許調用線(xiàn)程同時(shí)檢查多個(gè)內核對象的觸發(fā)狀態(tài),其函數原型如下:

DWORD WaitForMultipleObjects(

DWORD dwCount,

CONST HANDLE * phObjects,

BOOL bWaitAll,

DWORD dwMilliseconds);

dwCount表示我們要檢測的內核對象的個(gè)數。這個(gè)值必須在1-MAXIMUM_WAIT_OBJECTS之間。phObjects是一個(gè)指針,指向一個(gè)內核對象句柄的數組。bWaitALL為T(mén)RUE時(shí)表示要等所有的內核對象都被觸發(fā),為FALSE時(shí)表示所等待的內核對象中有一個(gè)被觸發(fā)時(shí),線(xiàn)程就會(huì )被喚醒。最后一個(gè)參數與WaitForSingleObject中的那個(gè)一樣。

WaitForMultipleObjects函數的返回值告訴調用函數為什么它能過(guò)繼續運行??梢苑祷氐闹蛋╓AIT_FAILED和WAIT_TIMEOUT。

如果bWaitAll為T(mén)rue而且所有的對象都被觸發(fā)了,那么返回值是WAIT_OBJECT_0.

如果bWaitAll為False,那么只要任何一個(gè)對象被觸發(fā),函數就會(huì )立刻返回。這時(shí)返回值是WAIT_OBJECT_0和WAIT_OBJECT_0+dwCount-1中間的任何一個(gè)值,即我們在第二個(gè)參數中傳遞給函數的句柄數組的一個(gè)索引,用來(lái)告訴我們被觸發(fā)的是哪個(gè)對象。



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>