c# - 在每种情况下使用 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 任务。
发生这种情况是否有任何原因。有什么方法我想强制关闭它。
在这方面的任何帮助都非常有帮助。谢谢。
解决方案
推荐阅读
- python - 为什么我的字典插入将我的变量分成两个数字而不是一个?
- python - SQLAlchemy 使用 filter() 但不使用 get() 函数获取一行
- python - Python 如何找到 sys.prefix (resp. sys.base_prefix) 的值?
- node.js - 如何从同一个节点 CLI 动态导入 commonJS 和 ES6 模块?
- scheme - 如何在 scm 方案中定义一个函数来测试其参数是否为宏?
- reactjs - 如何访问异步函数中的 React.useState 值?
- javascript - 如何防止在 addEventListener 中重复执行函数?
- python - 在熊猫中使用正则表达式修改特定字符之前的列数据
- javascript - 如何在命令中向通道发送消息?
- awk - awk 不能同时使用 FIELDWIDTHS 和 OFS