赤峰市网站建设_网站建设公司_定制开发_seo优化
2026/3/2 18:23:40 网站建设 项目流程

方法一:std::bind + 成员函数

class TaskHelp { public: TaskHelp() = default; ~TaskHelp() { StopTask(); } public: // 线程函数 void ThreadFunc() { // todo 其他事项 // 访问类成员 std::cout << m_status.c_str() <<std::endl; } // 方法一 void StartTask_v1() { m_taskThread = std::thread(std::bind(&TaskHelp::ThreadFunc, this)); } void StopTask() { if (m_taskThread.joinable()) { m_taskThread.join(); } } void SetStatus(const std::string& status) { m_status = status; } private: std::string m_status = "no task"; std::thread m_taskThread; }; // 使用示例 int main(int argc, char* argv[]) { TaskHelp help; help.StartTask_v1(); Sleep(1000); help.StopTask(); return 0; }

方法二:[this] + lambda

class TaskHelp { public: TaskHelp() = default; ~TaskHelp() { StopTask(); } public: // 线程函数 void ThreadFunc() { // todo 其他事项 // 访问类成员 std::cout << m_status.c_str() <<std::endl; } // 方法二 void StartTask_v2() { m_taskThread = std::thread([this]() { // todo 其他事项 // 访问类成员 std::cout << m_status.c_str() << std::endl; }); } void StopTask() { if (m_taskThread.joinable()) { m_taskThread.join(); } } void SetStatus(const std::string& status) { m_status = status; } private: std::string m_status = "no task"; std::thread m_taskThread; }; // 使用示例 int main(int argc, char* argv[]) { TaskHelp help; help.StartTask_v2(); Sleep(1000); help.StopTask(); getchar(); return 0; }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询