用Windows API实现多线程--原理例子
首先必须包含头文件windows.h
下面是一个简单的例子:在主函数中开启新的子线程执行函数f()。
#include <windows.h>
#include <iostream>
using namespace std;
void WINAPI f1(LPVOID pvThread)
{
while (true)
{
printf("inside thread 1/n");
Sleep(1000);
}
}
void WINAPI f2(LPVOID pvThread)
{
while (true)
{
printf("inside thread 2/n");
Sleep(2000);
}
}
int main()
{
HANDLE hThread1 = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)f1,NULL,0,NULL);
HANDLE hThread2 = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)f2,NULL,0,NULL);
if(hThread1 != NULL)
{
WaitForSingleObject(hThread1, INFINITE);
CloseHandle(hThread1);
}
if(hThread2 != NULL)
{
WaitForSingleObject(hThread2, INFINITE);
CloseHandle(hThread2);
}
return 0;
}
其中
if(hThread != NULL)
{
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
}
这一段很重要,这段让主线程保持住。如果没有这段的话,执行完上一句,主线程不等子线程执行就退出,从而子线程也跟着退出了,就达不到效果。
参考整理于此处:http://topic.csdn.net/t/20020811/00/931486.html#
用Windows API实现多线程--原理例子相关推荐
- C语言中pthread或Windows API在多线程编程中的基本应用
文章目录 多线程概述 掌握多线程需要学习什么? 使用pthread.h实现多线程 使用Windows API实现多线程 使用threads.h实现多线程 参考资料 警告 由于我懒得写完,而且懂的也不是 ...
- c运行库、c标准库、windows API的区别和联系
c运行库.c标准库.windows API的区别和联系 C运行时库函数 C运行时库函数是指C语言本身支持的一些基本函数,通常是汇编直接实现的. API函数 API函数是操作系统为方便用户设计应用 ...
- C++ WINDOWS API 第2章 Windows API概要
目录 2.1 Windows数据类型.. 1 2.1.1 Windows数据类型示例.. 1 2.1.2 Windows 数据类型与标准C 数据类型的关系.. 5 ...
- c语言windows api编程,windows API编程学习
我并不是计算机专业的学生,从事的工作也和编程没啥关系,并且是工作了五六年后开始在业余时间学习windows编程的,这种背景下开始学编程确实比较痛苦. 买了Charles Petzold 的<wi ...
- 使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程
标 题: [原创]使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程. 作 者: shayi 时 间: 2015-02-12,05:19:54 链 ...
- 案例一: 使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程。 首先用文本编辑器写一个C++源程序名为StackFrame.cpp ,代码如下:
案例一: 使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程. 首先用文本编辑器写一个C++源程序名为StackFrame.cpp ,代码如下: 1 ...
- VC API常用函数简单例子大全(1-89)
第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄 函数的定义:HWND WINAPI FindWindow(LPCSTR lpClassName ,LPCST ...
- Windows操作系统深入解析原理
Windows运用程序编写插口(API)是对于Windows电脑操作系统大家族的客户方式系统软件程序编写插口.在32位版本号的Windows营销推广之前,31位版本号Windows电脑操作系统的程序编 ...
- 纯Windows API打造西门子移动网程控交换机人机终端(曾经最有成就感的作品)
今天,翻了一下曾经写过的代码,曾经,因为工作需要,潜心研究了西门子移动网交换机人机互动编程,出了很多个OMTV操作终端版本,有delphi版的,有C++Builder版的,最有成就感的还是用VC++6 ...
最新文章
- 制作安全网站的checklist
- linux-DNS(bind)-setting
- Linux epoll
- 鹅厂最新数字人,体温36.5℃
- 每日一皮:无良商家,难怪头发越来越少了!
- 58同城买二手电脑的感想
- 团体程序设计天梯赛-练习集L1-011 A-B (20分)getline输入
- php yii 海报,php – 找不到Yii2主题集成图像
- html ie动画效果,css3强大的动画效果animate使用说明及浏览器兼容介绍
- SWT学生成绩管理系统
- SQL结构化查询语言基础知识 转
- MAPREDUCER学习笔记
- git分支创建分支删除分支合并
- Knockout自定义绑定my97datepicker
- 修改计算机系统参数软件,机器码修改专家(修改电脑机器码工具) v2.0官方版
- 诺兰模型与信息化建设阶段分析
- LCN(使用springCloud)分布式事物原理
- ckfinder php,php,ckfinder_ckfinder mac下报错 linux正常,php,ckfinder - phpStudy
- 数数字(Digit Counting)
- es 索引操作(创建、查看、删除)