線程掛起問題,請牛人解答。。謝謝

flyound 2007-12-12 04:55:19
//創建線程
UpLoadFileInfo * upInfo=new UpLoadFileInfo;
memset(upInfo,0,sizeof UpLoadFileInfo);
wcscpy(upInfo->name,sCTSMes.message.udpFileInfo.fileName);
upInfo->fileSize=sCTSMes.message.udpFileInfo.fileSize;
strcpy(upInfo->ip,sCTSMes.message.udpFileInfo.ip);
upInfo->port=sCTSMes.message.udpFileInfo.port;
upInfo->dataSize=sCTSMes.message.udpFileInfo.dataSize;
upInfo->upHandle=CreateThread(NULL,0,SendFileDataProc,(LPVOID)upInfo,CREATE_SUSPENDED,NULL);
ResumeThread(upInfo->upHandle);

//掛起線程
void CShareMyClientDlg::SetStopUpFile(P2PUserInfo upInfo)
{
int rs=0;
for(int i=0;i<m_upInfoArray.GetCount();i++)
{
UpLoadFileInfo * up=(UpLoadFileInfo*)m_upInfoArray.GetAt(i);
if (wcscmp(up->name,upInfo.fileName)==0&&strcmp(up->ip,upInfo.ip)==0&&up->port==upInfo.port)
{
rs=SuspendThread(up->upHandle);
}
}
}

為什么掛起線程不器作用 就是收到掛起消息后 然后執行掛起線程操作 就是掛起了幾十毫秒 然后它又繼續執行了
請問怎么回事 線程里有Sleep();
...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿呆_ 2007-12-13
  • 打赏
  • 举报
回复
SuspendThread不一定成功的, 比如线程当前正在执行内核代码时就不会被挂起
jameshooo 2007-12-12
  • 打赏
  • 举报
回复
你还在哪调用ResumeThread的?有可能你调用了这个。
flyound 2007-12-12
  • 打赏
  • 举报
回复
返回值頁都正常

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧