以下程序为何没输出,已经设置1多线程
// tmpMu.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "process.h"
#include <windows.h>
#include "stdio.h"
BOOL repeat = TRUE;
DWORD WINAPI MyThread1(LPVOID lpParameter)
{
while(repeat)
{
printf("how are you");
Sleep(1);
}
DWORD exitCode;
ExitThread(exitCode);
return 0;
}
DWORD WINAPI MyThread2(LPVOID lpParameter)
{
while(repeat)
{
printf("Very Well\n");
Sleep(1);
}
DWORD exitCode;
ExitThread(exitCode);
return 0;
}
DWORD WINAPI KillThread(LPVOID lpParameter)
{
repeat = FALSE;
return 0;
}
int main(int argc, char* argv[])
{
HANDLE handle1,handle2,handle3;
DWORD dw1,dw2,dw3;
handle1 = CreateThread(NULL,0,MyThread1,NULL,0,&dw1);
if(handle1 == NULL)
{
printf("Create Thread 1 Failed!\n");
return -1;
}
handle2 = CreateThread(NULL,0,MyThread2,NULL,0,&dw2);
if(handle2 == NULL)
{
printf("Create Thread 2 Failed!\n");
return -1;
}
handle3 = CreateThread(NULL,0,KillThread,NULL,0,&dw3);
if(handle3 == NULL)
{
printf("Create Thread 3 Failed!\n");
return -1;
}
CloseHandle(handle1);
CloseHandle(handle2);
CloseHandle(handle3);
return 0;
}
问题点数:7、回复次数:6Top
1 楼snlux(snlux)回复于 2006-03-03 23:47:51 得分 0
中断线程太快了,创建前先睡个1秒2秒的Top
2 楼vcmute(BCare4 H1Rest Good9!)回复于 2006-03-03 23:55:03 得分 0
WaitForMultiObjectsTop
3 楼booming(信誉值由于系统错误导致)回复于 2006-03-04 14:00:29 得分 0
那不应该没有输出啊?Top
4 楼booming(信誉值由于系统错误导致)回复于 2006-03-04 15:16:55 得分 0
怎么修改啊?Top
5 楼booming(信誉值由于系统错误导致)回复于 2006-03-04 16:26:46 得分 0
原来主线程少了Sleep(2000);但我这样修改:
Project -setting-c/c++:
Use run-time library:
Single-Threaded
依然Top
6 楼dark520xiang(想跳海的鱼)回复于 2006-03-04 16:49:55 得分 0
main函数跑的是主线程。
你得不到打印的原因是,主线程执行完,然后销毁,但子线程还没执行,也被销毁了,所以看不到打印的结果Top




