如何让两个操作一起执行呢?
例如:
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



