VC中创建了一个新的进程,为什么程序还是顺序执行呢

boolm_end=false;HWNDhWnd;UINTThreadProc(LPVOIDpParam)//{m_progres.Create(WS_VISIBLE|W... bool m_end = false;
HWND hWnd;
UINT ThreadProc(LPVOID pParam)//
{
m_progres.Create(WS_VISIBLE|WS_CHILD|PBS_SMOOTH, CRect(0,600,980,620),AfxGetMainWnd(),1020);
m_progres.SendMessage(PBM_SETBARCOLOR, 0, RGB( 0, 0,255));
m_progres.SendMessage(PBM_SETBKCOLOR, 0, RGB(0, 0, 100));
m_progres.SetRange(1,100);
for (int i=1;i<100;i++)
{
m_progres.SetPos(i);
Sleep(5);
}
return 0;
}
void CSCSampleDlg::OnXncef()
{
// TODO: Add your control notification handler code her
CWinThread* pThread;
hWnd = GetSafeHwnd();
pThread = AfxBeginThread(ThreadProc,hWnd);
pThread->m_bAutoDelete = false;
…………………………省略……………………
m_end = true;
WaitForSingleObject(pThread->m_hThread,INFINITE);
delete pThread;

11
展开
 我来答
bai_lj
2013-08-09 · TA获得超过276个赞
知道小有建树答主
回答量:505
采纳率:77%
帮助的人:281万
展开全部
可以说清楚点吗?从哪个现象看出是顺序执行了?
追问
我在进程UINT ThreadProc(LPVOID pParam)//里面加一段延时,它就执行完延时后才接着往下执行。加上进度显示后就都不执行了。不知道怎么回事
追答
因为这条语句
WaitForSingleObject(pThread->m_hThread,INFINITE);

导致主线程阻塞无限等待工作线程结束后才继续往下执行。
所以导致了顺序执行。
回答晚了,不好意思!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式