CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

如何让两个操作一起执行呢?

楼主Laone(Laone)2003-08-04 13:50:11 在 C/C++ / C语言 提问

例如:  
  void   load(){  
          while(!kbhit()){  
                  printf("load\n");  
                  Sleep(100);  
          }  
  }  
  void   del(){  
          while(!kbhit()){  
                  printf("del\n");  
                  Sleep(100);  
          }  
  }  
   
  这两个操作,load和del里都有while循环,怎么才能一起执行呢?  
  谢谢! 问题点数:50、回复次数:10Top

1 楼defstu(玛瑙石)回复于 2003-08-04 14:07:08 得分 0

放在一个while里面或者用两个线程Top

2 楼Laone(Laone)回复于 2003-08-04 14:21:31 得分 0

如何做线程?我搜索过这里的关于线程的贴子,却没有答案Top

3 楼WindsonZhL(风之子)回复于 2003-08-04 14:24:13 得分 0

用线程好。  
   
   
  //   创建进程  
  hCom1=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)load,NULL,0,&ThreadId1);  
  hCom2=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)del,NULL,0,&ThreadId2);  
   
  //   挂起进程  
  SuspendThread(hCom);  
   
  //   恢复进程  
  ResumeThread(hCom);  
   
  //   终止进程  
  TerminateThread(hCom,   ThreadId);Top

4 楼Laone(Laone)回复于 2003-08-04 14:24:13 得分 0

放在一个while里是不行的,因为Sleep的时间不一样  
  关于线程,我搜索过这里的贴子,却没有答案,能否给个简单的实例看看Top

5 楼chinazcw(笑口常开)回复于 2003-08-04 14:31:47 得分 0

俺不懂~~~Top

6 楼defstu(玛瑙石)回复于 2003-08-04 14:36:03 得分 0

如果是windows系统到vc->多线程去搜  
  如果是unix系统到linux/unix开发去搜Top

7 楼villager(在黑暗的角落 忧郁的眼神注视着你)回复于 2003-08-04 14:41:33 得分 0

多线程这个东东过几个月我才学到Top

8 楼Laone(Laone)回复于 2003-08-04 14:48:57 得分 0

#include   <stdlib.h>  
  #include   <stdio.h>  
  #include   <string.h>  
  #include   <windows.h>  
   
  int   count1=0,count2=0;  
  void   load(){  
          while(1){  
                  printf("load\n");  
                  count1++;  
                  Sleep(100);  
          }  
  }  
  void   del(){  
          while(1){  
                  printf("del\n");  
                  count2++;  
                  Sleep(1000);  
          }  
  }  
   
  int   main(){  
  DWORD   ThreadId1,ThreadId2;  
  HANDLE   hCom1=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)load,NULL,0,&ThreadId1);  
  HANDLE   hCom2=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)del,NULL,0,&ThreadId2);  
  if   (hCom1==0)  
  printf("Cannot   create   thread:   %s\n",GetLastError());  
  if   (hCom2==0)  
  printf("Cannot   create   thread:   %s\n",GetLastError());  
  SuspendThread(hCom1);  
  SuspendThread(hCom2);  
  while(count1<100){  
  printf("%d   ->   %d\n",count1,   count2);  
  Sleep(100);  
  }  
  TerminateThread(hCom1,   ThreadId1);  
  TerminateThread(hCom2,   ThreadId2);  
  return   0;  
  }  
   
  按照WindsonZhL(风之子)给的提示,写了以上的代码,为何运行不了,count1和count2总是为0,却不递增。Top

9 楼WindsonZhL(风之子)回复于 2003-08-04 15:00:12 得分 50

count1和count2 要定义为全局变量!!Top

10 楼WindsonZhL(风之子)回复于 2003-08-04 15:02:27 得分 0

唉!!今天断了N次电。Top

11 楼Laone(Laone)回复于 2003-08-04 15:02:50 得分 0

ok,明白了,要WaitForSingleObject才可以,谢谢WindsonZhL(风之子)以及诸位Top

相关问题

  • 执行操作
  • 如何对同一串口同时执行读操作及写操作?
  • **如何在FileListBox控件上执行“查找”操作?**
  • 在VS中如何执行数据库的操作?
  • 如何实现禁止从TextBox执行拷贝操作?
  • 如何对显卡缓冲区执行操作?
  • 如何执行数据库批量删除操作?
  • 如何跟踪用户执行了什么数据库操作
  • 如何使用PHP执行事务处理的操作?PHP3.6RC + MYSQL4.1.1
  • 字段名中包含空格时如何执行操作?

关键词

  • sleep
  • start
  • null
  • hcom
  • threadid
  • lpthread
  • suspendthread
  • terminatethread
  • del
  • createthread

得分解答快速导航

  • 帖主:Laone
  • WindsonZhL

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo