Word Interop突然需要很长时间才能退出单词

问题描述 投票:0回答:1

突然打电话:

((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很好,所以我真的认为这应该比足够的机器功能还不错:)。

请帮助找到导致此问题的实际原因和解决方案,所以我可以返回使用了四年的原始代码。

c# ms-word interop exit
1个回答
0
投票

事实证明,问题与互操作无关,因此我不必更改任何代码。如果我在Word中打开了任何docx文件(本地或非本地),然后再次将其关闭,则关闭Microsoft Word(32位)过程将花费很长时间。然后,如果我在Word中,则在左下角打开“帐户”标签,然后退出我的帐户。问题消失了……天哪,我考虑了一整天都在做,但是不,确实如此。 DOH。抱歉。

经过一些测试,通过打开多个文档,突然又开始花费更长的时间。显然,它会自动再次使我登录。再次注销后,它再次解决了问题,因此,我深信。 Ofc我不想永远在我的个人计算机上保持注销状态,然后我再次手动登录,是的,这需要更长的时间,但是这次并不需要那么长。大约3-4秒。仍然比20-30好。好像Onedrive就会在“ Connected Services”下启动并运行。

© www.soinside.com 2019 - 2024. All rights reserved.