CreateThread demo
#include "stdafx.h"
#include<windows.h>
#include<strsafe.h>//win2003SDK必须安装 要不无此头文件。此文件是为了实现StringCchPrintf,StringCchLength。
#define MAX_THREADS 5
#define BUF_SIZE 255
typedef struct _MyData{
int val1;
int val2;
}MYDATA,*PMYDATA;
DWORD WINAPI ThreadProc(LPVOID lpParam)
{
HANDLE hStdout;
PMYDATA pData;
TCHAR msgBuf[BUF_SIZE];
size_t cchStringSize;
DWORD dwChars;
hStdout=GetStdHandle(STD_OUTPUT_HANDLE);
if(hStdout==INVALID_HANDLE_VALUE)
return 1;
pData=(PMYDATA)lpParam;
StringCchPrintf(msgBuf,BUF_SIZE,TEXT("Parameters=%d,%d\n"),pData->val1,pData->val2);
//printf("%d,%d\n",pData->val1,pData->val2);
StringCchLength(msgBuf,BUF_SIZE,&cchStringSize);
WriteConsole(hStdout,msgBuf,cchStringSize,&dwChars,NULL);
HeapFree(GetProcessHeap(),0,pData);
return 0;
}
void main()
{
PMYDATA pData;
DWORD dwThreadId[MAX_THREADS];
HANDLE hThread[MAX_THREADS];
int i;
for(i=0;i<MAX_THREADS;i++)
{
pData=(PMYDATA)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(MYDATA));
if(pData==NULL)
ExitProcess(2);
pData->val1=i;
pData->val2=i+100;
hThread[i]=CreateThread(
NULL,//defaultsecurityattributes
0,//usedefaultstacksize
ThreadProc,//threadfunction
pData,//argumenttothreadfunction
0,//usedefaultcreationflags
&dwThreadId[i]);//returnsthethreadidentifier
if(hThread[i]==NULL)
{
ExitProcess(i);
}
}
WaitForMultipleObjects(MAX_THREADS,hThread,TRUE,INFINITE);
for(i=0;i<MAX_THREADS;i++)
{
CloseHandle(hThread[i]);
}
system("pause");
}
最新文章
- android.view.InflateException: Binary XML file line #34: Error inflating class
- rails 常用的知识点
- ios中蓝牙自动连接出现硬件提示框的问题
- JMeter学习-026-JMeter 分布式(远程)参数化测试实例
- js 操作ASP.NET服务器控件
- C++多态公有继承
- 数据库自定义表值函数Split(@LongStr, @SplitStr, @IsDistinct )
- Java之向左添加零(000001)
- C# winform 右下角弹窗
- AngularJS 的一些坑
- JavaScript面向对象--继承 (超简单易懂,小白专属)
- 【猿分享第10期】微信小程序Meetup扫盲专场回顾(转载)
- H5页面分享微信自定义分享title和img
- linux 一个读写锁的异常导致的故障
- js点击获取标签元素
- WebService快速上手
- 教你轻松计算AOE网关键路径
- (11)shutil模块(文件处理模块)
- QCon技术干货:个推基于Docker和Kubernetes的微服务实践
- C#之父
热门文章
- PrepareStatement
- centos6.5 安装JDK
- monkey参数应用
- review15
- 我的博客搬家到https://www.w2le.com/了
- LINQ to Entities 不识别方法&ldquo;Int32 ToInt32(System.String)&rdquo;,因此该方法无法转换为存储表达式。
- python中的列表和字典(二)
- syq小姐姐的分享的历年考试经验
- Project://STARK
- 如何显示PHP运行错误