create thread from a class

main
Yik Teng Hie 3 years ago
parent 20bfa298a8
commit 66f95ad377

@ -6,8 +6,8 @@
int main() int main()
{ {
Run r1; Run r1(20);
Run r2; Run r2(10);
char input = '0'; char input = '0';
r2.setState(AUTO); r2.setState(AUTO);
@ -18,10 +18,10 @@ int main()
std::cout << "Hello World!\n"; std::cout << "Hello World!\n";
std::cout << "Q: Quit\n"; //std::cout << "Q: Quit\n";
while (input != 'Q') { //while (input != 'Q') {
std::cin >> input; // std::cin >> input;
} //}
r1.EndTask(); r1.EndTask();
r2.EndTask(); r2.EndTask();
@ -29,6 +29,8 @@ int main()
std::cout << "Wait Terminate!\n"; std::cout << "Wait Terminate!\n";
r1.WaitThreadTerminate(); r1.WaitThreadTerminate();
r2.WaitThreadTerminate(); r2.WaitThreadTerminate();
std::cout << "All Terminated!\n";
} }
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu // Run program: Ctrl + F5 or Debug > Start Without Debugging menu

@ -1,14 +1,20 @@
#include "Run.h" #include "Run.h"
#include <iostream> #include <iostream>
Run::Run() { Run::Run(int count) {
// constructor // constructor
m_bExit = false; m_bExit = false;
m_bHalt = false; m_bHalt = false;
m_state = IDLE; m_state = IDLE;
m_myThread = std::thread(&Run::DoTask, this); //m_myThread = std::thread(&Run::DoTask, this);
// assign a member function of a class
// @link https://thispointer.com//c11-multithreading-part-3-carefully-pass-arguments-to-threads/
//new_thread dummyObj;
//m_myThread = std::thread(&new_thread::operator(), &dummyObj, 1);
m_myThread = std::thread(new_thread(), count);
} }
Run::~Run() Run::~Run()

@ -31,7 +31,7 @@ class Run
{ {
public : public :
// ctor // ctor
Run(); Run(int count = 1);
virtual ~Run(); virtual ~Run();

Loading…
Cancel
Save