2015-02-23 75 views
0

我的一个服务进程是使用Microsoft interop dll启动winword进程并创建一个文档。由于某些未知问题,该进程不会退出(很少发生),因此在此之后所有的winword进程实例化都会停滞。杀死运行超过两分钟的winword进程

我想正确的服务工具,它会检查的时间超过2分钟,运行任何WINWORD过程并杀死该进程。这样连续的create语句将照常运行。我会在Windows服务中这样做。 (C#)

+3

当您的客户实际上使用的是单词而不是您的应用程序时会发生什么?你认为他会喜欢每2分钟结束一次吗? – 2015-02-23 13:20:03

+0

您应该确定未知问题是什么 – Sayse 2015-02-23 13:24:05

+0

它实例化新实例并创建word文档。如果之前的实例卡在某处,我认为不会发生这种情况。我想早期的流程必须等待一些提示才能得到解答,比如保存/取消。因为下一个过程没有开始。 – Jay 2015-02-23 13:25:45

回答

1

我同意提意见说杀人的话是不是最完美的解决方案,但是如果你出的替代品,那么这就是你如何杀死与已经运行超过2给定的名称进程分钟。

// I tested with notepad so you would switch this with the Microsoft Word exe name. 
string processName = "notepad"; 
Process[] processes = Process.GetProcessesByName(processName); 

foreach (Process process in processes) 
{ 
    TimeSpan runningTime = DateTime.Now - process.StartTime; 
    if (runningTime.TotalMinutes > 2) 
     process.Kill(); 
} 
+0

我试图用这种方法做,但winword只创建一个winword.exe实例,如果我杀了winword.exe它会停止如果有的话,目前的操作。有没有办法找到杀死一个文件 – Jay 2015-02-24 05:37:17