CreateManagedObject[expr,f]
创建一个托管对象,当它不再被引用时计算 f[expr].
CreateManagedObject
CreateManagedObject[expr,f]
创建一个托管对象,当它不再被引用时计算 f[expr].
更多信息
- 许多需要指针对象的函数将自动展开包含指针的托管表达式.
- CreateManagedObject[expr,man] 创建一个新的表示 expr 的托管对象,它与 ManagedObject man 共享引用计数 (reference count).
- 只有活动的托管对象才会在不再被引用时计算释放的函数.
- 可用 UnmanageObject 取消托管对象的激活.
范例
打开所有单元 关闭所有单元基本范例 (2)
可能存在的问题 (3)
使用 With 时,托管对象通常会过早释放,其中,引用计数在函数主体中最后一次使用该符号后递减:
With[{man = CreateManagedObject[foo, Echo["freed"]&]},
EchoLabel["func"][man["Value"]]
]可用 Module 来代替,引用计数在最后才递减:
Module[{man = CreateManagedObject[foo, Echo["freed"]&]},
EchoLabel["func"][man["Value"]]
]一旦托管表达式对象的引用计数为零,就对 func[expr] 进行计算. 但是,expr 可能也存在于托管表达式之外,因此,即使在引用计数名义上为零之后也继续存在:
With[{man = CreateManagedObject[foo, Echo]}, man["Value"]]在许多情况下,引用计数似乎为零,但由于 Out 的原因,它并不是零:
CreateManagedObject[foo, Echo];用 Out 访问托管对象:
%技术笔记
-
▪
- 外部函数
相关指南
-
▪
- 外部函数接口
文本
Wolfram Research (2023),CreateManagedObject,Wolfram 语言函数,https://reference.wolfram.com/language/ref/CreateManagedObject.html.
CMS
Wolfram 语言. 2023. "CreateManagedObject." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/CreateManagedObject.html.
APA
Wolfram 语言. (2023). CreateManagedObject. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/CreateManagedObject.html 年
BibTeX
@misc{reference.wolfram_2026_createmanagedobject, author="Wolfram Research", title="{CreateManagedObject}", year="2023", howpublished="\url{https://reference.wolfram.com/language/ref/CreateManagedObject.html}", note=[Accessed: 18-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_createmanagedobject, organization={Wolfram Research}, title={CreateManagedObject}, year={2023}, url={https://reference.wolfram.com/language/ref/CreateManagedObject.html}, note=[Accessed: 18-June-2026]}