亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

WaitforSingleObject要加哪些頭文件?

WaitforSingleObject要加哪些頭文件?

紅顏莎娜 2023-03-03 14:10:37
使用VC6.0,加了windows.h;winbase.h;編譯報錯'WaitforSingleObject' : undeclared identifier
查看完整描述

2 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

因為你函數寫錯了
WaitForSingleObject
F要大寫

查看完整回答
反對 回復 2023-03-06
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

WaitForSingleObject的用法 
  WaitForSingleObject的用法
  DWORD WaitForSingleObject( 
  HANDLE hHandle, 
  DWORD dwMilliseconds 
  ); 
  參數hHandle是一個事件的句柄,第二個參數dwMilliseconds是時間間隔。如果時間是有信號狀態返回WAIT_OBJECT_0,如果時間超過dwMilliseconds值但時間事件還是無信號狀態則返回WAIT_TIMEOUT。
  hHandle可以是下列對象的句柄:
  Change notification 
  Console input 
  Event 
  Job 
  Memory resource notification 
  Mutex 
  Process 
  Semaphore 
  Thread 
  Waitable timer 
  WaitForSingleObject函數用來檢測hHandle事件的信號狀態,當函數的執行時間超過dwMilliseconds就返回,但如果參數dwMilliseconds為INFINITE時函數將直到相應時間事件變成有信號狀態才返回,否則就一直等待下去,直到WaitForSingleObject有返回直才執行后面的代碼。在這里舉個例子:
  先創建一個全局Event對象g_event:
  CEvent g_event;
  在程序中可以通過調用CEvent::SetEvent設置事件為有信號狀態。
  下面是一個線程函數MyThreadPro()
  UINT CFlushDlg::MyThreadProc( LPVOID pParam ) 
  { 
  WaitForSingleObject(g_event,INFINITE); 
  For(;;) 
  { 
  …………. 
  } 
  return 0; 
  } 
  在這個線程函數中只有設置g_event為有信號狀態時才執行下面的for循環,因為g_event是全局變量,所以我們可以在別的線程中通過g_event. SetEvent控制這個線程。
  還有一種用法就是我們可以通過WaitForSingleObject函數來間隔的執行一個線程函數的函數體
  UINT CFlushDlg::MyThreadProc( LPVOID pParam ) 
  { 
  while(WaitForSingleObject(g_event,MT_INTERVAL)!=WAIT_OBJECT_0) 
  { 
  ……………… 
  } 
  return 0; 
  } 
  在這個線程函數中可以可以通過設置MT_INTERVAL來控制這個線程的函數體多久執行一次,當事件為無信號狀態時函數體隔MT_INTERVAL執行一次,當設置事件為有信號狀態時,線程就執行完畢了。

 


查看完整回答
反對 回復 2023-03-06
  • 2 回答
  • 0 關注
  • 155 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號