2172|1

67

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

100分 关于一个程序流程的问题 [复制链接]

请教各位帮忙单步跟踪一下下面这个程序
#include  "stdafx.h"  
  #include    
  #include    
  using  namespace  std;  
   
  #define  THREAD_NUM  5  
  HANDLE  g_Event;  
  HANDLE  event[THREAD_NUM];  
  DWORD  WINAPI  ThreadFunc(LPVOID);  
   
  int  main(int  argc,  char*  argv[])  
  {  
  HANDLE  hThrd[THREAD_NUM];  
  g_Event=::CreateEvent(NULL,TRUE,FALSE,NULL);  
  for  (int  i=0;i   {  
  event=::CreateEvent(NULL,TRUE,FALSE,NULL);  
  }  
  for  (i=0;i   {  
  hThrd=::CreateThread(NULL,0,ThreadFunc,(LPVOID)i,0,NULL);  
  if  (hThrd!=NULL)  
  {  
  cout < <"Thread" <   }  
  }  
  WaitForMultipleObjects(THREAD_NUM,event,TRUE,INFINITE);  
  PulseEvent(g_Event);  
  WaitForMultipleObjects(THREAD_NUM,hThrd,TRUE,INFINITE);  
  for  (i=0;i   {  
  CloseHandle(event);  
  CloseHandle(hThrd);  
  }  
  CloseHandle(g_Event);  
  cout < <"Process  Finished" <   return  0;  
  }  
   
  DWORD  WINAPI  ThreadFunc(LPVOID  n)  
  {  
  SetEvent(event[(int)n]);  
  while  (TRUE)  
  {  
  switch(WaitForSingleObject(g_Event,INFINITE))  
  {  
  case  WAIT_OBJECT_0:  
  printf("Thread%d  WAIT_OBJECT_0\n",(int)n+1);  
  return  0;  
  break;  
  default:  
  break;  
  }  
  }  
  return  0;  
  }  
我不理解它的执行顺序
看的很迷糊
请各位高手帮忙指点一下
象调试程序一样,帮忙讲讲程序每步向下运行执行到哪?为什么?
谢谢各位

最新回复

这是一个线程试验程序,每一个线程都有自己独立的流程,通过内置的事件进行响应和操作 event=::CreateEvent(NULL,TRUE,FALSE,NULL);  事件队列加入 hThrd=::CreateThread(NULL,0,ThreadFunc,(LPVOID)i,0,NULL);  开启线程,线程独立于次流程,拥有自己的流程 应该参考一下Windows下的线程机制和事件机制,应该就明白了! 占个位置,为团队宣传一下,(*^__^*) 嘻嘻…… ------------------------------------------------------------ SuRaid团队主要承接嵌入式、Web、美工、算法设计等业务 ———————— 我们的宗旨 ———————— 求实创新,注重技术,长期合作,稳固发展 团队网址: http://www.suraid.cn 团队邮箱: bbs@esuraid.com   详情 回复 发表于 2008-9-1 22:51
点赞 关注

回复
举报

86

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这是一个线程试验程序,每一个线程都有自己独立的流程,通过内置的事件进行响应和操作

event=::CreateEvent(NULL,TRUE,FALSE,NULL);  事件队列加入

hThrd=::CreateThread(NULL,0,ThreadFunc,(LPVOID)i,0,NULL);  开启线程,线程独立于次流程,拥有自己的流程

应该参考一下Windows下的线程机制和事件机制,应该就明白了!

占个位置,为团队宣传一下,(*^__^*) 嘻嘻……
------------------------------------------------------------
SuRaid团队主要承接嵌入式、Web、美工、算法设计等业务
———————— 我们的宗旨 ————————
求实创新,注重技术,长期合作,稳固发展

团队网址: http://www.suraid.cn
团队邮箱: bbs@esuraid.com
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表