众所周知在使用C++创建多线程执行时只能传递一个方法到thread模块中去创建线程执行。但是有时候我们往往需要使用多线程去执行某个对象中的方法,而对象中的方法却无法直接加载到thread模块中,本文通过两种调用方式实现多线程thread如何调用C++类中的方法。
头文件 stdafx.h
#pragma once
#include<iostream>
#include<string>
#include <thread>
#include <Windows.h>
源文件 thread.cpp
#include "stdafx.h"
using namespace std;
void* task2();
class Task
{
public:
static void* task1()
{
printf("aa");
Sleep(1000);
printf("cc");
return 0;
}
friend void* task2()
{
printf("bb");
return 0;
}
public:
int a = 1;
};
int main()
{
thread thread1(&Task::task1);
thread thread2(task2);
thread1.join();
thread2.join();
for (int i = 0; i < 5; i++)
{
cout << "Main thread is working !" << endl;
}
system("pause");
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。