g_bStopTransThread由两个按钮Start和Stop控制,点击Start的时候除了将g_bStopTransThread置FALSE,还会Resume如下线程,那么如下代码能否保证Work()执行完后才挂起线程?——Work()只有在完成任务后才会返回:
UINT TransProc(LPVOID pParam)
{
CGCFZDlg *pDlg = (CGCFZDlg*)pParam;
while(TRUE)
{
if(g_bStopTransThread)
{
SuspendThread(pDlg->m_hTransThread); // 挂起当前线程
}
else
{
pDlg->Work(); // 工作代码
}
}
return 0L;
}
只是想找大家帮确认下,现在有时点击了“Stop”后,似乎Work()并没有执行完,再次点击“Start”以后好像接着上次Work()没执行完的地方在跑...
UINT TransProc(LPVOID pParam)
{
CGCFZDlg *pDlg = (CGCFZDlg*)pParam;
while(TRUE)
{
if(g_bStopTransThread)
{
SuspendThread(pDlg->m_hTransThread); // 挂起当前线程
}
else
{
pDlg->Work(); // 工作代码
}
}
return 0L;
}
只是想找大家帮确认下,现在有时点击了“Stop”后,似乎Work()并没有执行完,再次点击“Start”以后好像接着上次Work()没执行完的地方在跑...
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货