13 hours ago
- 不可封送处理的委托必须在其原始上下文中销毁,以避免线程问题(非线程安全的引用计数、错误的线程销毁)。
- 自定义删除器(in_context_deleter)会捕获原始上下文,并在释放委托之前使用 IContextCallback::ContextCallback 切换上下文。
- make_agile_delegate 函数处理三种情况:敏捷对象、不可封送处理(使用自定义删除器)以及其他情况(使用 agile_ref)。
- IContextCallback 调用可能会失败,因此删除器无法保证绝对可靠;需要进一步改进。