實用場景:
例如在mfc主介面某個button click事件中起乙個執行緒去做處理一些事情,在起的執行緒執行完畢後,接著跑click起執行緒後的**,已達到按順序執行,保證時許正確的目的。
問題:通常處理乙個執行緒等待用 waitforsingleobject,這個放在主介面執行緒成中會造成主介面「卡死」,其原因是它將主介面的訊息迴圈給阻塞了,即等不到執行緒結束的時候介面上的訊息迴圈無法正常工作,從而造成介面「卡死」
處理辦法:
在等待執行緒的同時,讓訊息迴圈一直工作
示例[cpp]view plain
copy
uint
cmainuithreadwaitdlg::startthread(
lpvoid
pparam)
void
cmainuithreadwaitdlg::threadwork()
void
cmainuithreadwaitdlg::doevent()
} cwinthread* pthread = null;
void
cmainuithreadwaitdlg::onbnclickedbtnwork()
} while
((dwret != wait_object_0) && (dwret != wait_failed));
m_btnwork.enablewindow(true); //按鈕點亮
}
MFC 等待函式 WaitKey
我從opencv的等待函式中改進!1.可以實現 等待 功能。2.可以定時。3.可以處理訊息。防止介面卡死。void waitkey int delay 單位毫秒 計算當前的毫秒數 int time0 gettickcount 無限迴圈 for 派發訊息 translatemessage messag...
linux中線程相關函式
linux中線程相關函式 2010年03月09日 星期二 22 18 1.比較兩個執行緒 id 是否一致。執行緒id 使用 pthread t 資料型別來表示。linux 使用 unsigned long int 表示pthread t 資料型別。solaris 9 把 pthread t 資料型別...
執行緒函式(建立 取消 等待)
1.建立執行緒 建立執行緒的函式定義如下 include int pthread create pthread t restrict thread const pthread attr t restrict attr,void start routine void void restrict arg...