CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

以下程序为何没输出,已经设置1多线程

楼主booming(信誉值由于系统错误导致)2006-03-03 23:32:03 在 VC/MFC / 基础类 提问

//   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

相关问题

  • 请问:DEV-C++编译多线程程序怎么设置??
  • 一个多线程的入门问题,控制台程序不输出
  • 多线程的程序不稳定吗?
  • 程序如何实现多线程?
  • 多线程的程序怎么调试?
  • 求多线程SOCK连接程序
  • 如何用C++写多线程程序?
  • 多线程运行程序就死掉
  • 多线程程序无响应问题
  • 多线程程序的结束

关键词

  • sleep
  • null
  • exitcode
  • mythread
  • dw
  • handle
  • 主线程
  • createthread
  • lpvoid lpparameter
  • repeat

得分解答快速导航

  • 帖主:booming

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

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