2016-02-08 52 views
1

有人可以幫助我理解VC++(MFC)中的工作線程嗎? 以下是我的WorkerThread功能從MFC中的工作線程調用Beginwaitcursor函數

UINT ThreadFunc(LPVOID pParam) 
{ 
// some initialization... etc.. 

AfxGetApp()->BeginWaitCursor(); 

... 
.. 
/// some operations 

AfxGetApp()->End WaitCursor(); 

} 

是不是好,從一個工作線程調用WaitCursor()函數?

+1

這是「好的」,但它不會產生預期的效果。 UI線程會馬上改變它們。更好的解決方案是在窗口/對話框本身上顯示一個指示背景中發生了什麼的控件。 –

+0

在MFC中,您可以使用'CWaitCursor x;',並在'x'超出範圍時完成。但由於前面解釋的原因,它在這裏仍然沒有做任何事情。 –

回答

1

可用於BeginWaitCursorEndWaitCursor的文檔沒有提及與線程相關的問題。

所提到的一兩件事,

BeginWaitCursor的行動並不總是一個消息處理其他行動,諸如OnSetCursor處理的有效之外,可能會改變光標。

其他線程也可以在工作線程工作時更改光標。