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 ...
随机推荐
- 解决Git Revert操作后再次Merge代码被冲掉的问题
转:https://blog.csdn.net/paul_wei2008/article/details/77477932 https://blog.csdn.net/cxn945/article/d ...
- SQLite使用笔记
前言 客户端存储信息的方法有好多种,在以往的项目中采用的是序列化记录到文件中的方式,即时通信项目中客户端的一些系统配置的保存也使用的这种方式,然而客户端保存聊天记录就不能使用这种方式(保存.读取.修改 ...
- hello2 源码分析
1.GreetingServlet.java(问候页面): /** * Copyright (c) 2014 Oracle and/or its affiliates. All rights rese ...
- crontab 每分钟、每小时、每天、每周、每月、每年执行
每分钟执行 * * * * * 每小时执行 0 * * * * 每天执行 0 0 * * * 每周执行 0 0 * * 0 每月执行 0 0 1 * * 每年执行 0 0 1 1 * 每小时的第3和第 ...
- lldb调试mysql 插件命令
# attach process llvm process attach --pid 64924 # 添加断点 breakpoint set -n dispatch_command(enum_ ...
- java ssl 连接AD域
1.安装证书服务和IIS服务,不需要启动asp.(其会在c盘生成一个crt文件)2.获取crt证书文件 windows 2003:文件位于系统盘根目录 windows 2008: 文件位于C:\Win ...
- Delphi下的WinSock编程
一.定址 要通过Winsock建立通信,必须了解如何利用指定的协议为工作站定址.Winsock 2引入了几个新的.与协议无关的函数,它们可和任何一个地址家族一起使用:但是大多数情况下,各 ...
- flask 第六章 人工智能 百度语音合成 识别 NLP自然语言处理+simnet短文本相似度 图灵机器人
百度智能云文档链接 : https://cloud.baidu.com/doc/SPEECH/index.html 1.百度语音合成 概念: 顾名思义,就是将你输入的文字合成语音,例如: from a ...
- 用反射的形式将一个对象属性值赋值给另一个对象,省略点get/set方法的冗余代码
1.本例使用的是idea 首先需要在idea中安装lombok插件,省略getter和setter方法的书写 在maven项目中加入lombok依赖 <dependency> <gr ...
- linux - whatis 提示 ls: nothing appropriate
linux 执行命令 whatis 时,提示: ls: nothing appropriate 原因:whatis是在数据库中执行查找操作,这个数据库是定期更新的, 新安装的系统,系统没有更新,没有这 ...