我正在使用 c# .NET 使用 MSOFFICE com 互操作 DLL 调用 MS com。
我知道 Office com 互操作不是线程安全的。但是,对于不同的用户来说它是线程安全的吗?我对 Windows 上的进程隔离知之甚少,不知道这是否是像这样的共享组件的限制,或者 Office coms 只是写得不好。例如,调用 PPT 并输出视频实际上是打开 PPT 并将视频渲染为 AVI。我知道他们会使用相同的登录用户帐户发生冲突,但是如果不同的登录系统用户调用该过程可以吗?
我问是因为我想在已经托管另一个应用程序的机器上建立一个测试环境。IT 在理论上很难测试,因为我们不能保证会发生进程冲突,但它可能会发生。
运行良好,可以运行数周和数月。
调用示例:
using Microsoft.Office.Core;
using Microsoft.Office.Interop.PowerPoint;
Application app = new Application();
Presentations presList = app.Presentations;
Presentation pres = null;
// ... do some stuff ...
// then kill it.
private static bool KillPowerPoint()
{
Process[] prs = Process.GetProcesses();
var killed = false;
// do a bunch of stuff to kill the process ...
return killed;
}