Chromium Base学习笔记 —— Weakptr
来源:互联网 发布:lb极速网络 编辑:程序博客网 时间:2024/06/04 00:23
WeakPtr 不会影响Object的声明周期。 任何其他的对象,包括它自己在任何时间都可以delete。
WeakPtr存在的意义就是保证其他对象访问它的时候的安全性(有可能被意外delete,所以访问到Null等)
// EXAMPLE: class Controller { public: void SpawnWorker() { Worker::StartNew(weak_factory_.GetWeakPtr()); } void WorkComplete(const Result& result) { ... } private: // Member variables should appear before the WeakPtrFactory, to ensure // that any WeakPtrs to Controller are invalidated before its members // variable's destructors are executed, rendering them invalid. WeakPtrFactory<Controller> weak_factory_; }; class Worker { public: static void StartNew(const WeakPtr<Controller>& controller) { Worker* worker = new Worker(controller); // Kick off asynchronous processing... } private: Worker(const WeakPtr<Controller>& controller) : controller_(controller) {} void DidCompleteAsynchronousProcessing(const Result& result) { if (controller_) controller_->WorkComplete(result); } WeakPtr<Controller> controller_; };Weak pointers may be passed safely between threads
But the object must be dereferenced(也就是不能是RefCountedThreadSafe的实例)
阅读全文
0 0
- Chromium Base学习笔记 —— Weakptr
- Chromium Base学习笔记 —— Callback
- WeakPtr 学习
- WeakPtr 学习
- chromium源码阅读(4)-weakptr
- Chromium学习笔记(一)——Chromium框架及进程模型
- Chromium学习笔记
- [Chromium学习笔记]
- 智能指针——AutoPtr & ScopedPer & SharedPtr & WeakPtr
- [Chromium学习笔记]了解Chromium的基础知识
- boost智能指针及chromium指针管理WeakPtr
- boost智能指针及chromium指针管理WeakPtr
- XML Base学习笔记
- XML Base学习笔记
- java base学习笔记
- Invenio学习笔记--Base
- Chromium base库介绍
- C#学习笔记-base关键字
- Java
- 【机器学习】梯度下降法的证明
- raw_input( )和sys.stdin.readline( )的区别
- MySQL常用命令(备查)
- Python操作excel
- Chromium Base学习笔记 —— Weakptr
- 客户端设置WebService调用超时时间
- 代理模式在Android中的应用
- twemproxy源码分析之四:处理流程
- PHP获取获取当前页面的URL相关方法
- 数学建模算法 一 简述(1)蒙特卡洛算法
- js 调用 android 方法
- inline
- 多进程导致 Application 多次执行的问题研究