首页 > 解决方案 > 在每种情况下使用 c# 强制关闭后台服务/应用程序

问题描述

我有一个用 c# .net4.6 编写的 Windows 服务。
每当此服务收到任何消息时,它都会打开 excel 应用程序,从收到的消息中写入一些数据,运行一些计算(这是预定义的),将输出保存到另一个文件中并关闭 excel 应用程序。
所有这些活动都可以正常工作,但关闭作为后台服务运行的 excel 应用程序除外。

我打开了一个这样的excel应用程序:

Object excelObject = Interaction.CreateObject("Excel.Application", null);

我正在尝试通过此行关闭应用程序:

 int processID = excelObject.CurrentProcessID;
 Process myProcess = Process.GetProcessById(processID); // gets stuck here
 myProcess.Kill();

这在 99% 的情况下都有效,但有时它会卡住,我无法弄清楚原因。我必须手动打开任务管理器并结束在后台服务中运行的 Excel 任务。

发生这种情况是否有任何原因。有什么方法我想强制关闭它。
在这方面的任何帮助都非常有帮助。谢谢。

标签: c#

解决方案


推荐阅读