VC6.0下创建多线程的方法和注意的事项

#include<stdio.h>

#include <process.h>

#include <stdio.h>

#include <windows.h>

DWORD _stdcall ThreadProc(LPVOID lpParameter)//线程执行函数

{

int si=100;

while(si>0)

{

printf("子线程输出数字:%d\n",si--);

Sleep(1000);

}

return 0;

}

int main()

{

int mi=0;

CreateThread(NULL,0,ThreadProc,NULL,0,NULL);//创建一个线程,去执行ThreadProc函数

while(mi<100)

{

printf("主线程输出数字:%d\n",mi++);

Sleep(1000);

}

return 0;

}

这一段代码没问题,但是要将CreateThread()换成_beginthreadex()的话就会出错!!!

#include<stdio.h>

#include <process.h>

#include <stdio.h>

#include <windows.h>

unsigned _stdcall ThreadProc1(LPVOID lpParameter)//线程执行函数1

{

int si=100;

while(si>0)

{

printf("子线程:%d\n",si--);

Sleep(1000);

}

return 0;

}

int main()

{

int mi=0;

HANDLE   hth1;

unsigned  uiThread1ID;

hth1 = (HANDLE)_beginthreadex( NULL, 0,ThreadProc1,NULL,

CREATE_SUSPENDED,&uiThread1ID );

if(hth1 == NULL)

{

return FALSE;

}

else

{

ResumeThread(hth1);

}

while(mi<100)

{

printf("主线程输出数字:%d\n\n",mi++);

Sleep(1000);

}

return 0;

}

运行之后会出现错误_beginthreadex()没有定义。这时候需要你改变设置。

_beginthreadex不仅要加头文件“process.h”还要设置工程属性;

在VC6下用_beginthreadex编写多线程程序时,不但要将<process.h>包含进来,而且还是设置工程属性,选择C/C++

一栏,在分类里选择Code Generation,在Use run-time library那一个栏选择多线程版本(带有Multithreaded的)就可以了。

时间: 2024-12-10 11:02:38

VC6.0下创建多线程的方法和注意的事项的相关文章

在VC6.0下如何调用Delphi5.0开发的进程内COM

因为本人的语言水平很差,考大学时150的总分,我考了个60分.外语也是,初中及格过一次,会考及格过一次.其它的时间好像从没有及格过.所以我不写文章,因我一百字的文章给我写,至少要出八九个错别字.哈哈….真是个马大哈.你别说我还真的姓马.所以下面的文章中有错误之处,请你老人家多多理解.谁叫你看我的文章了的.下面就谈正事吧! 本人接触COM的时间也不长,是看了本关于组件重用的书,才让我对COM产生性(兴)趣的.所以就想试试COM的二进制级重用好不好用.在开发公司项目的过程中,我就用COM方式写了一个

在Linux7.0下创建论坛详细步骤解析

   在Linux7.0下创建论坛详细步骤解析具体内容查看附件. 如有错误,希望可以反馈回来,谢谢!          

如何在VC6.0下用pthread.h这个头文件

如何在VC6.0下用pthread.h这个头文件 1.下载PTHREAD的WINDOWS开发包 pthreads-w32-2-4-0-release.exe(任何一个版本均可) http://sourceware.org/pthreads-win32/,解压到一个目录. 2.找到include和lib文件夹,下面分别把它们添加到VC++6.0的头文件路径和静态链接库路径下面: a).Tools->Options,选择Directory页面,然后在Show directories for:中选择I

与VC6.0配套的MSDN下载地址和安装注意事项

MSDN是很有用的查询工具,与VC6.0配套的最后一版是MSDN2001otc,我找了好久才找到一个能够下载的地址,见网址http://blog.csdn.net/zaodt/article/details/2560020,该版本亲测可用. 安装注意事项:在安装程序提示安装形式的时候,会有三个选项,依次是典型安装.自定义安装和全部安装,这里一定要选择全部安装,不然就会出现文件丢失错误,导致安装失败. 再推荐一个网址http://blog.csdn.net/t0nsha/article/detai

win7下打开VC6.0工程崩溃的解决方法

Win7安装VC6.0后,点击打开按钮,会崩溃,如下图所示,原因是win7系统内核与vc6.0的某些组件冲突. 微软针对这个问题发布了一个补丁,FileTool.dll 下载之后将FileToll.dll文件拷贝至vc6..0的安装目录,我的目录是:D:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\AddIns 以管理员身份打开CMD进行注册,regsvr32 "D:\Program Files\Microsoft Vis

.NET Framework4.0 下的多线程

一.简介 在4.0之前,多线程只能用Thread或者ThreadPool,而4.0下提供了功能强大的Task处理方式,这样免去了程序员自己维护线程池,而且可以申请取消线程等...所以本文主要描述Task的特性. 二.Task的优点 操作系统自身可以实现线程,并且提供了非托管的API来创建与管理这些线程.但是C#是运行在CLR上面的,为了方便的创建与管理线程,CLR对这些API进行了封装,通过System.Threading.Tasks.Task公开了这些包装. 在计算机中,创建线程十分耗费珍贵的

windows下vc6.0下的OpeSSL编译过程中的问题

我的机器环境是:window7 + vs2010 + vc6.0; 其实,在windows上用VS2010以上的工具来编译Openssl源码库很简单,估计大家都测试过,用VS2008及其以上的工具编译Openssl源码库就3行代码即可: perl Configure -WIN32 --prefix=d:/openssl ms\do_ms nmake -f ms\nt.mak vc6.0版本的openssl编译步骤如下: 1.打开命令提示符,找到vc6.0所在的bin目录,输入VCVARS32.B

VC6.0中创建的线程的传参数问题

VC中的win32控制台程序,然后包含MFC的程序,用CreateThread()向其对应函数传参数的问题 // test.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "test.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FIL

多线程教程初级教程(一)--创建多线程的方法

1-1:进程和线程的区别是什么? 总结:进程是所有线程的集合,每一个线程是进程中的一条执行路径. 1-2:利用多线程有什么好处 1.提高程序的执行效率,防止阻塞 2.充分利用多核CPU的性能 3.利用多线程可以达到任务以大化小的目的 2-1:利用继承Thread类实现多线程 class CreateThread extends Thread { // run方法中编写 多线程需要执行的代码 publicvoid run() { for (inti = 0; i< 10; i++) { Syste