簡體   English   中英

工作線程使主線程MFC處於非活動狀態對話框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM