突然打电话给
((microsoft.Office.Interop.Word._Application)word).Quit(SaveChanges: microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges,OriginalFormat: Type.Missing);
持续花费30-60秒,而不是最多3秒。 当我使用它创建pdf时,它不会发生,但是当我创建docx时,它不会发生。我还没有尝试所有不同的选项...
最近可能与新版本的Windows有关。当我看到有人在不到两个月前更新了有关单词互操作性的旧帖子时,我的怀疑就更加强烈了: LINK请参阅:“在2019-09-29编辑” 我没有尝试过他们在那里写的任何东西。主要是因为我不了解它,并且以前也没有必要。
对我来说,问题出在2台Windows 10计算机上。我的桌面一周前已更新到1903,所以可能是这样。它在运行word 2016的Windows服务器上仍然可以正常工作。 我的桌面运行的是word 365,但我朋友的Surface Pro 3也是如此,他没有问题。我不知道他是否最近更新了Windows10。
有趣的是,当我通常用空文档打开单词然后再次关闭它时,我遇到了同样的问题。窗户关闭了,但是任务管理器的单词处理花了很长时间才能关闭,所以这让我很怀疑。然后,我尝试使用单词设置,然后关闭“在此应用程序启动时显示启动画面”,它立即开始关闭该过程。 我当时虽然是Ofc:“好,问题解决了”,但是没有。使用互操作时仍然存在相同的问题。我尝试通过添加以下行来模拟“显示开始屏幕”的关闭: word.ShowStartupDialog = false; 这只是一个期望,告诉我在没有窗口打开时ShowStartupDialog不可用。可能是因为我在不可见模式下运行文字。
我最后通过将退出代码放在这样的线程中来解决了这个问题:
System.Threading.Thread t = new System.Threading.Thread(() =>
{
((microsoft.Office.Interop.Word._Application)word).Quit(SaveChanges:
microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges,OriginalFormat: Type.Missing);
});
t.IsBackground = true;
t.Start();
然后,我可以继续在程序中工作,甚至可以再次调用同一函数来创建另一个文档。然后,它将在旧进程仍关闭的同时启动另一个进程。我只是尝试同时关闭3次,这足以供我使用。另外,每个实例占用大量CPU 25%以上!我的计算机不是suuuuper新设备,但它能够运行CS GO很好,所以我真的认为这应该比足够的机器功能还不错:)。
请帮助找到导致此问题的实际原因和解决方案,所以我可以返回使用了四年的原始代码。