[英]Work thread makes inactive dialog of the main thread MFC
我有一個對話框的基於MFC對話框的應用程序。 在按鈕上單擊我開始另一個工作線程。 不幸的是,工作線程功能正在運行時,無法訪問我的對話框上的控件。
void CrMainDlg::OnBnClickedButton1()
{
//...
CWinThread* fonThread = AfxBeginThread(WorkerThreadProc, iP, THREAD_PRIORITY_NORMAL, 0, 0, NULL);
//...
}
UINT CrMainDlg::WorkerThreadProc(LPVOID Param)
{
//...
while(/*some bool*/)
{
//makesomething
Sleep(1000);
}
//...
}
僅當我編寫Sleep(1000)時,我才能訪問ScrollBar或其他按鈕或主對話框中的其他內容。 如果我不這樣做-我只能在結束后才能訪問控件...
我究竟做錯了什么?
(1)工作線程函數必須是靜態的。 如果未聲明為靜態,則您發布的代碼將無法編譯。 (2)工作線程不應訪問任何控件,而只能訪問數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.