// TODO: Add extra initialization here m_ctrlProcess.SetRange(0,100); m_ctrlProcess.SetPos(0); m_ctrlProcess.SetStep(10); UpdateData(FALSE); SetTimer(1,1000,NULL);
return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } //在创建子进程前创建子线程 AfxBeginThread(ThreadFunc,&Info); ...... create=CreateProcess(...);
UINT ThreadFunc(LPVOID lpParam)
{
CWaitDlg *dlg = new CWaitDlg;
dlg->Create(IDD_WAIT_DIALOG);
dlg->ShowWindow(SW_SHOW);
dlg->UpdateWindow();
return 0;
}//进度条初始化
BOOL CWaitDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_ctrlProcess.SetRange(0,100);
m_ctrlProcess.SetPos(0);
m_ctrlProcess.SetStep(10);
UpdateData(FALSE); SetTimer(1,1000,NULL);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
//在创建子进程前创建子线程
AfxBeginThread(ThreadFunc,&Info);
......
create=CreateProcess(...);
UINT ThreadFunc(LPVOID lpParam)
{
CWaitDlg *dlg = new CWaitDlg;
dlg-> Create(IDD_WAIT_DIALOG);
dlg-> ShowWindow(SW_SHOW);
dlg-> UpdateWindow(); MSG msg;
while(GetMessage(&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
} return 0;
} void CWaitDlg::PostNcDestroy()
{
delete this;
PostQuitMessage(0);
}
MSG msg;
while(GetMessage(&msg, NULL, 0, 0) )
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}但是出现了新的情况,要等主线程运行完了才运行子线程,为什么它们的优先级一样却不同步?