|
|
1
2
我个人并没有使用过微软的办公软件,但在大多数情况下,你们不应该这样做 有 编辑: 如果遇到确实需要清理COM/Interop对象的情况,请使用Marshal.finalEleaseComObject(将引用计数一直设置为零,而不是仅递减1),并将对象引用设置为null。如果需要,可以显式强制垃圾收集(GC.Collect) 真正地 我们希望安全,但要小心执行GC太频繁,因为它确实会引起明显的性能损失。 |
|
|
2
2
通常,使用Microsoft Office时,您确实需要明确发布引用,这可以分两个阶段安全完成: (1) 首先通过调用GC.Collect()和GC.WaitForPendingFinalizers()释放所有未持有命名对象变量的次要对象。(如果所涉及的对象可能具有终结器,例如在使用Visual Studio Tools for Office(VSTO)时,则需要调用此函数两次。) (2) 然后通过调用每个对象上的Marshall.finalEleaseComObject()显式释放包含命名变量的对象。 就这样。:-) 我更详细地讨论了这个问题 in a previous post ,以及一个代码示例。 |
|
|
4
1
有一些好的做法 here 使用托管包装器..值得签出。。 |
|
|
5
0
|
|
|
6
0
如中所述,如果希望退出Office应用程序实例,则确实需要这样做 this post .
|
|
|
7
0
关于.Net/COM互操作有一条简单的规则-当有疑问时,请始终释放()。:-) |
|
|
8
0
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |