12,964
回編集
35行目: | 35行目: | ||
// スレッド処理の開始 | // スレッド処理の開始 | ||
m_pLoadXMLThread->ResumeThread(); | m_pLoadXMLThread->ResumeThread(); | ||
while(WaitForSingleObject( | while(WaitForSingleObject(m_pLoadXMLThread->m_hThread, 100) == WAIT_TIMEOUT) | ||
{ | { | ||
// フリーズしないようにする | // フリーズしないようにする | ||
45行目: | 45行目: | ||
} | } | ||
} | } | ||
delete | delete m_pLoadXMLThread; | ||
} | } | ||
// マルチスレッドの応用(ウェイトウィンドウを表示する) | |||
//m_pLoadXMLThread = ::AfxBeginThread(LoadXMLThreadFunc, this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED, NULL); | |||
//if(m_pLoadXMLThread) | |||
//{ | |||
// CRect rc; | |||
// HWND hNotifyWnd = CreateDialog(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDD_PROCESSING), this->m_hWnd, (DLGPROC)YCommonProc); | |||
// ::ShowWindow(hNotifyWnd, SW_SHOW); | |||
// ::GetClientRect(&rc); | |||
// ::MoveWindow(hNotifyWnd, (rc.right - rc.left) / 2 - 100, (rc.bottom - rc.top) / 2 - 25, 200, 50, TRUE); | |||
// m_pLoadXMLThread->m_pMainWnd = this; | |||
// m_pLoadXMLThread->m_bAutoDelete = FALSE; | |||
// m_pLoadXMLThread->ResumeThread(); | |||
// while(::WaitForSingleObject(m_pLoadXMLThread->m_hThread, 100) == WAIT_TIMEOUT) | |||
// { | |||
// // フリーズしないようにする | |||
// MSG msg; | |||
// while(::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) | |||
// { | |||
// ::TranslateMessage(&msg); | |||
// ::DispatchMessage(&msg); | |||
// } | |||
// } | |||
// delete m_pLoadXMLThread; | |||
// ::DestroyWindow(hNotifyWnd); | |||
//} | |||
} | } | ||