日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WaitForSingleObject

發布時間:2024/9/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WaitForSingleObject 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WaitForSingleObject?? 當指定的對象的狀態被標記或者指定的時間間隔過完時,此函數返回DWORD類型參數。

?

  格式:

    DWORD WaitForSingleObject(HANDLE hHandle,DWORD dwMilliseconds);

  參數:

    hHandle表示對象的句柄

    dwMilliseconds指出了時間間隔;過了指定的時間,即使對象狀態沒發生改變,函數也會返回;如果此參數設為0,函數測試對象的狀態并且立即返回;如果此參數設為INFINITE,則表示此函數的時間間隔永遠不會流逝完——只有等待對象狀態被標識時返回。

  返回值:

    成功:WAIT_OBJECT_0:表示對象的狀態被標識

      ?? WAIT_TIMEOUT:表示指定時間已到而對象狀態沒有被標識

    失敗:WAIT_FAILED:表明失敗

?

  WaitForSingleObject 函數檢查指定對象當前狀態,如果對象的狀態沒有被標識,則調用的線程進入有效的等待狀態。在等待對象狀態被標識或者指定的時間間隔到期,線程只會占據(consume)處理器一小段時間。時間間隔需要被指定在0到0x7FFFFFFF之間的正數,最大的時間間隔值不等于無窮大而是0x7FFFFFFF,無窮大的時間間隔值是0xFFFFFFFF。任何在0x7FFFFFFF和0xFFFFFFFE之間的值都等同于0x7FFFFFFF;如果你需要一個時間間隔比0x7FFFFFFF還要大的話,使用表示不窮的值0xFFFFFFFF。

?

  返回之前,等待函數修改了某些類型的同步對象的狀態,只有當對象的信號狀態引起了函數的返回時這種修改才發生。例如,一個信號量對象計數減少1。

  WaitForSingleObject 函數能等待如下的各種對象:事件(Event)、線程(Thread)、進程(Process)、互斥量(Mutex)、信號量(Semaphore)。

  使用時要小心調用等待函數和直接或間接產生窗口的代碼。如果一個線程創建了窗口,那么它必須處理消息。廣播消息發送到系統中的所有窗口。使用一個沒有時間間隔的等待函數的線程可能導致系統死鎖。例如,動態數據交換(DDE)協議和COM函數CoInitialize兩個都間接地創建了可能導致死鎖的窗口。因此,如果您有一個線程創建的窗口,使用MsgWaitForMultipleObjects 或者 MsgWaitForMultipleObjectsEx 而不是使用WaitForSingleObject。

轉載于:https://www.cnblogs.com/EmbeddedBoy/archive/2010/03/09/1681095.html

總結

以上是生活随笔為你收集整理的WaitForSingleObject的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。