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 = ; i < ; i++)
{
cout << "Displaying " << pmd->str << endl;
Sleep();
}
return ; } 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, , Fun, &xstr, , NULL);
WaitForSingleObject(hThread, INFINITE); // 等待,直到线程被激发
CloseHandle(hThread); cout << "Child thread is over." << endl;
return ; }
参考文章:
https://www.cnblogs.com/XiHua/p/5028329.html
Windows10 VS2017 C++多线程传参和等待线程结束的更多相关文章
- Qt线程QThread简析(8个线程等级,在UI线程里可调用thread->wait()等待线程结束,exit()可直接退出线程,setStackSize设置线程堆栈,首次见到Qt::HANDLE,QThreadData和QThreadPrivate)
QThread实例代表一个线程,我们可以重新实现QThread::run(),要新建一个线程,我们应该先继承QThread并重新实现run()函数. 需要注意的是: 1.必须在创建QThread对象之 ...
- 使用join和CountDownLatch来等待线程结束
1.join方法的实现 join只能在start()之后调用, join 某个线程A,会使当前线程B进入等待,直到线程A结束生命周期(isAlive()==false) ,或者达到给定的时间. 在此期 ...
- C# 多线程传参
using System; using System.Threading; //多线程调试: 2013.10.08 namespace ThreadExample { class App { publ ...
- 3.多线程传参,以及tuple数组
#include <Windows.h> #include <thread> #include <iostream> #include <tuple> ...
- C# 多线程传参 三种实例
//using Thread to download files //1111111111111111 foreach (var str in listDownloadPdf) { //string ...
- windows多线程(二) 等待线程返回
多线程编程中,有时我们需要等待某一线程完成了特定的操作后再继续做其他事情,要实现这个目的,可以使用Windows API函数WaitForSingleObject,或者WaitForMultipleO ...
- 线程创建,属性设置与获得,等待线程结束,线程中fork,以及执行exec()
这篇博客的形式我想以分析代码不同情况为主: 点击(此处)折叠或打开 #include<stdio.h> #include<pthread.h> #include<time ...
- Win32线程——等待另一个线程结束
转载: https://blog.csdn.net/yss28/article/details/53646627 <Win32多线程程序设计>–Jim Beveridge & Ro ...
- C# 多线程编程,传参,接受返回值
C# 多线程编程,传参,接受返回值 今天将多线程的知识有回顾了下,总结了几点: 新建一个线程(无参数,无返回值) Thread th = new Thread(new ThreadStart(Prin ...
随机推荐
- Arthur and Walls CodeForces - 525D (bfs)
大意: 给定格点图, 每个'.'的连通块会扩散为矩形, 求最后图案. 一开始想得是直接并查集合并然后差分, 但实际上是不对的, 这个数据就可以hack掉. 3 3 **. .** ... 正解是bfs ...
- list内含有元组或字典
a=[(")] for k,v,i in a: print(k,v,i) 结果: 1 21 12 2 31 32 list里含元组,可以用这种遍历输出挨个元素 但list里含字典时,这样就只 ...
- JSP 标准标签库JSTL
JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这些,它还提供 ...
- IO多路复用版FTP
需求: 实现文件上传及下载功能 支持多连接并发传文件 使用select or selectors 流程图 import socket import pickle import sys import t ...
- 使用idea搭建maven项目,结果spring-mybatis.xml文件报红“Cannot resolve file 'jdbc.properties' less... (Ctrl+F1) Inspection info:Spring XML model validation”
错误如下图: 解决方案: 暂时只是使用右下角的highlightinglevel来屏蔽,拖动到最左边就行了
- Spring Boot:如何优雅的使用 Mybatis
mybatis-spring-boot-starter 官方说明:MyBatis Spring-Boot-Starter will help you use MyBatis with Spring B ...
- 为虚机Linux系统设置静态IP,ping通外网并解决相关问题
在虚机中安装完Linux系统后,虚机是ping不通外网的,而默认的动态IP会为之后的Hadoop应用造成不少麻烦,为了减少这些不必要的麻烦,我们把系统的IP设置为静态. 步骤: 修改系统配置文件 命令 ...
- Jsp的table导出Excel
var idTmr; function getExplorer() { var explorer = window.navigator.userAgent ; //ie if (explorer.in ...
- Linux快捷键 Linux权限
第1章 回顾昨天内容 1.1 取出网卡ip地址 取出文件权限 1.2 awk '找谁{干啥}' awk 'NR==2{print $4}' 1.3 系统时间 [root@oldboyedu-40-n ...
- spring MVC 入门:
概述: MVC: M model 模型,除控制和视图以外,都可以成为模型. V view 视图,JSP,HTML,ASP,PHP,XHTML,FREEMARK,JSF,直接与用户做交互的资源. C c ...