鱼C论坛

 找回密码
 立即注册
查看: 2707|回复: 6

线程的问题。。纠结啊!!

[复制链接]
发表于 2012-2-25 22:54:34 | 显示全部楼层 |阅读模式
1鱼币
#include <windows.h>
#include <stdio.h>
//#include <Thapi.h>
HANDLE hm;
int i=0;
DWORD WINAPI T(LPVOID A)
{
DWORD h=WaitForSingleObject(hm,INFINITE);
    switch(h)
{
case WAIT_OBJECT_0:printf("count..%d\n",i);break;
case WAIT_ABANDONED:printf("WAIT_ABANDONED\n");break;
case WAIT_TIMEOUT:printf("WAIT_TIMEOUT\n");break;
}
// printf("count1..%d\n",i);
i++;
/// ReleaseMutex(hm);
return 0;
}
int main()
{
hm=CreateMutex(0,0,"YY");
HANDLE handle[4];
for(int j=0;j<4;j++)
{
  handle[j]=CreateThread(0,0,T,0,0,0);
  //Sleep(100);  
}
return 0;
}
为什么结果神乎其神的,结果都不一样。。求解释啊!!

最佳答案

查看完整内容

回1楼的“第一:switch语句最后一句不能用break结束,而是用default结束”switch 可以这么写的。 回LZ:其实线程还没执行完毕 你的主函数已经退出了,导致线程执行了一半也被强制退出了,你在主函数的 return 0;的上面加上一句 system(“pause”);挂起代码试试就知道啦。如果结果正确的话你可以用WaitForMultipleObjects 这个函数等待线程执行完毕后再退出。或者加Sleep(100000); 延迟 注意一下 WaitForSingleObject ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-25 22:54:35 | 显示全部楼层
本帖最后由 Love 梦想 于 2012-2-27 10:36 编辑

回1楼的“第一:switch语句最后一句不能用break结束,而是用default结束”switch 可以这么写的。

回LZ:其实线程还没执行完毕 你的主函数已经退出了,导致线程执行了一半也被强制退出了,你在主函数的 return 0;的上面加上一句 system(“pause”);挂起代码试试就知道啦。如果结果正确的话你可以用WaitForMultipleObjects 这个函数等待线程执行完毕后再退出。或者加Sleep(100000); 延迟
注意一下  WaitForSingleObject 用法哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-25 23:25:25 | 显示全部楼层
第一:switch语句最后一句不能用break结束,而是用default结束
第二:你这貌似是多线程,要用WaitForMultipleObjects函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-25 23:37:00 | 显示全部楼层

额。。不是吧!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-6 16:12:06 | 显示全部楼层
长长见识。。。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-6 17:06:22 | 显示全部楼层
憔悴心只为你 发表于 2012-2-25 23:25
第一:switch语句最后一句不能用break结束,而是用default结束
第二:你这貌似是多线程,要用WaitForMulti ...

第一:switch语句最后一句不能用break结束,而是用default结束

没这回事 谁这么教你的
误人子弟了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-8 11:22:05 | 显示全部楼层
谢谢分享,非常喜欢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 22:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表