水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
1/1
|
转到
主题:一个低级失误引起的 BUG。
楼主
|
speedboy2998
|
2023-09-04 15:18:50
|
展开
在类中定义了一个线程指针
std::unique_ptr<std::thread> mDataThread;
定义了一个线程函数:
void dataProc();
创建线程的时候写成了:
mDataThread = std::make_unique<std::thread>(&MyClass::mDataThread );
竟然没任何错误,线程启动退出都正常,就是dataProc没有执行到。
后来我就把所有的线程函数都改名叫 xxxLoop.
比如
void dataLoop();
--
FROM 13.57.72.*
2楼
|
speedboy2998
|
2023-09-04 18:02:49
|
展开
谢谢,刚刚全给改了。
【 在 z16166 的大作中提到: 】
: 有一些理由是不要把std::thread放到智能指针中,没咋细看
:
https://stackoverflow.com/questions/44832054/storing-an-stdthread-in-c11-smart-pointer
--
FROM 218.76.62.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版