#pragma once #include #include enum STATES { IDLE, POWERUP, AUTO, MAINTENANCE }; class new_thread { public: void operator()(const int x) { for (int i = 0; i < x; i++) { std::cout << "Thread ID : " << std::this_thread::get_id() << std::endl; std::this_thread::sleep_for(std::chrono::seconds(1)); } std::cout << "End Of Thread" << std::endl; } }; class Run { public : // ctor Run(int count = 1); virtual ~Run(); virtual void Maintenance(); virtual void Auto(); virtual void PowerUp(); void DoTask(); void setState(STATES s); void EndTask(); void WaitThreadTerminate(); private: std::thread m_myThread; bool m_bExit; bool m_bHalt; int m_state; };