在我的應用程序中,我有一個模式對話框,其中包含約20個不同的組合框,這些組合框綁定到數據庫中的某些字段。數據庫非常龐大,在加載對話框時我必須加載數據庫中的所有組合框。所以我設置了20個線程(每個組合框1個)。每件事情都可以正常工作,但只有當用戶在線程運行時用關閉或取消按鈕或OK按鈕關閉對話框時纔會出現問題。在這種情況下,應用程序崩潰。 我試圖過早地終止線程,但這並沒有幫助。這裏線程終止代碼應用程序在運行線程關閉時崩潰
if(m_iNoOfThreadsCompleted != m_iTotalThreads)
{
for(int i = 0; i < m_iTotalThreads - 1; i++)
{
if (m_threads[i] != NULL)
{
GetExitCodeThread(m_threads[i]->m_hThread, &exit_code);
if(exit_code == STILL_ACTIVE)
CloseHandle(m_threads[i]->m_hThread);
}
if(m_iNoOfThreadsCompleted == m_iTotalThreads)
break;
}
}
問題是什麼。或者我需要使用更好的方法?請幫助
我嘗試使用approch,但仍然我的應用程序崩潰。我在OnDestroy事件上設置事件。所以一旦OnDestroy被調用,我的線程函數就不會被命中。有沒有其他的事件處理程序,我可以把這個代碼? P.S:我沒有把代碼放在按鈕後面,因爲我的對話框是非模態的,所以即使主應用程序關閉我的對話框/應用程序也應該優雅地關閉。 – WAQ 2012-08-10 09:44:04