关于std::function

lucifer886 2014-12-17 11:50:57
代码比较简单,说一下好了:
我有一个异步调用std::function的过程,然后初始化的时候,我将这个std::function指向了一个类的成员函数。
运行过程中,std::function指向的这个类被动态的销毁了,那么我再次异步调用std::function的时候肯定会出问题。
当然这里我可以自己做一个处理,在类销毁的时候去通知异步调用std::function的线程告诉他我已经销毁了,不要再调用了,但这样写起来代码会比较麻烦点。

请问下有没有什么懒方法,当std::function指向的对象呗异步销毁的时候这个对象自己能主动监测到?
想了几天没想到什么办法……
...全文
237 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-12-17
  • 打赏
  • 举报
回复
《Windows核心编程》
lucifer886 2014-12-17
  • 打赏
  • 举报
回复
引用 2 楼 ri_aje 的回复:
shared_ptr + weak_ptr 就行。
非常感谢,已经解决了,怎么就没想到weak_ptr……
fly_dragon_fly 2014-12-17
  • 打赏
  • 举报
回复
如果这个对象要动态销毁, function指的对象就无效的话,我认为你的回调应该形成注册机制,注册后有效,注销就无效,不要只是初始化后就一定要调用这个回调
ri_aje 2014-12-17
  • 打赏
  • 举报
回复
shared_ptr + weak_ptr 就行。

64,681

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧