为什么一个线程杀死另外一个线程之后自己也死了阿!?

zshtiger2414 2008-06-10 03:54:19
我做了俩线程,用其中一个杀死了另外的一个,这个时候这个杀手也自己死了!
这是怎么回事啊!
...全文
137 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zshtiger2414 2008-06-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 stonewater 的回复:]
bReturn = AfxBeginThread(progThreadProc1,A);
->
bReturn = AfxBeginThread(progThreadProc1,&(bReturn->m_hThread));
[/Quote]

恩,好了!
谢谢!
我的分数很少!不知道怎么分了!大家意思下了阿!hehe !
zshtiger2414 2008-06-10
  • 打赏
  • 举报
回复
在创建线程的时候在驻进程中就可以获得被创建线程的handle?
怎么做啊!
万望大家不吝指教阿!
stonewater 2008-06-10
  • 打赏
  • 举报
回复
bReturn = AfxBeginThread(progThreadProc1,A);
->
bReturn = AfxBeginThread(progThreadProc1,&(bReturn->m_hThread));
KeSummer 2008-06-10
  • 打赏
  • 举报
回复
它杀..变成了自杀...
创建progThreadProc的时候不是有handle吗?把它传过去..
KeSummer 2008-06-10
  • 打赏
  • 举报
回复
穿过来的是0xFFFFFFFF,这个是伪句柄来的...当然把自己结束了..
zshtiger2414 2008-06-10
  • 打赏
  • 举报
回复
调用的时候就是这样调用的,但是在执行的时候,
UINT progThreadProc(LPVOID pParam )
{
*(HANDLE*)pParam = GetCurrentThread();
popup.DoModal();
AfxMessageBox(_T("OK here"));
return 0;
}

UINT progThreadProc1(LPVOID pParam)
{
BOOL sign = TerminateThread((HANDLE)pParam,0);
AfxMessageBox(_T("chenggong"));
UpdateWindow(AfxGetMainWnd()->GetSafeHwnd());
return 0;
}

这个AfxMessageBox(_T("chenggong"));就没有执行就出去了阿!
zshtiger2414 2008-06-10
  • 打赏
  • 举报
回复
CWinThread* bReturn = AfxBeginThread(progThreadProc,&A);
AfxMessageBox(_T("ShouHaiZhe"));
bReturn = AfxBeginThread(progThreadProc1,A);
AfxMessageBox(_T("MouShaZhe"));
Sea2001 2008-06-10
  • 打赏
  • 举报
回复
他觉得自己太残忍了,所以决定自刎以谢天下
bug_forever 2008-06-10
  • 打赏
  • 举报
回复
是不是那个线程函数里面就terminatethread一句话啊?
liyinlei 2008-06-10
  • 打赏
  • 举报
回复
贴代码
KeSummer 2008-06-10
  • 打赏
  • 举报
回复
可能那个线程自己过意不去自杀了。。。

呵呵。。开个玩笑。。
1:判断那个线程是否正常退出。。
2:你结束线程是怎么结束的?问题可能就在这。
buyong 2008-06-10
  • 打赏
  • 举报
回复
具体怎么杀得
king820802 2008-06-10
  • 打赏
  • 举报
回复
你怎么杀的?他们什么关系?

15,466

社区成员

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

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