Windows10 VS2017 C++多线程传参和等待线程结束
#include "pch.h" #include <iostream> #include <windows.h> using namespace std; typedef struct MyData { const char* str; }MYDATA; //线程函数 DWORD WINAPI Fun(LPVOID lpParamter) { MYDATA *pmd = (MYDATA *)lpParamter; for (int i = 0; i < 10; i++) { cout << "Displaying " << pmd->str << endl; Sleep(500); } return 0; } int main() { //使用struct传递参数 MYDATA xstr; xstr.str = "你好!"; //使用GetExitCodeThread()轮询检查 //DWORD exitCode = 0; //HANDLE hThread = CreateThread(NULL, 0, Fun, &xstr, 0, NULL); //while (1) { // GetExitCodeThread(hThread, &exitCode); // 严重浪费 CPU 时间 // if (STILL_ACTIVE != exitCode) // break; //} //CloseHandle(hThread); //WaitForSingleObject(),cpu使用率极低 HANDLE hThread = CreateThread(NULL, 0, Fun, &xstr, 0, NULL); WaitForSingleObject(hThread, INFINITE); // 等待,直到线程被激发 CloseHandle(hThread); cout << "Child thread is over." << endl; return 0; }

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
策略模式原来这么简单!
前言 只有光头才能变强 回顾前面: 给女朋友讲解什么是代理模式 包装模式就是这么简单啦 单例模式你会几种写法? 工厂模式理解了没有? 无论是面试还是个人的提升,设计模式是必学的。今天来讲解策略模式~ 一、策略模式介绍 我一次听到策略模式这个词,是在我初学JDBC的时候。不知道大家有没有用过DBUtils这个组件。当时初学跟着视频学习,方立勋老师首先是让我们先自己封装一下JDBC的一些常用的操作(实际上就是模仿DBUtils这个组件)。 当时候的问题是这样的:我们打算封装一下query()查询方法,传入的参数有String sql , Object[] objects(指定SQL语句和对应的参数)。我们想根据不同的业务返回不同的值。 比如说,有的时候我们返回的是一条数据,那我们想将这条数据封装成一个Bean对象 比如说,有的时候我们返回的是多条数据,那我们想将这多条数据封装成一个List<Bean> 集合 比如说,有的时候我们返回的是xxxx数据,那我们想将这多条数据封装成一个Map<Bean> 集合 ........等等等 当时解决方案是这样的: 先定义一个接口...
- 下一篇
C\C++控制台程序隐藏方法总结
学习计算机,往往先从Windows环境下学习编程,学习编程,往往从C学起,学习C,往往又从控制台程序学习,何为控制台,就是那个黑框白字的界面。对于这样一个最初认为奇陋无比而现在认为无所不能的编程平台,有时候需要将界面隐藏起来。那么如何做呢? 方法1: 在头文件下加上一句预处理命令: #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // 设置入口地址 完整程序为: #include<windows.h> #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // 设置入口地址 int main() { MessageBox( NULL, "Hello", "Notice", NULL); return 0; } 在编译器下运行时仍会出现黑框,但直接运行编译好的exe程序就不会显示黑框了,截图分别如下: 方法2: 使用API函数隐藏自身窗口,但会有黑框快速闪过的痕迹。...
相关文章
文章评论
共有0条评论来说两句吧...