0

早上好。
这是一个奇怪的问题,我知道,但请耐心等待!:-)

场景
几年前,我制作了一个简单的 C# 控制台应用程序(称为 MyApp,myapp.exe),它为大型 COBOL 应用程序(称为 CblApp)做了一些工作。
这个应用程序通常读取一些文件,执行请求的工作(如调用 Web 服务等)并写入一些输出文件。
与 CblApp 的交互以这种方式工作:

  • CblApp 调用 myapp.exe,例如 myapp.exe -i:readinputfilefile.xml -w:writeresults.xml
  • CblApp 自己阻塞,直到 myapp.exe 关闭(同步方式)
  • 当 myapp.exe 完成并自行关闭时,CblApp 读取结果文件

MyApp 是基于插件的,现在它是一个拥有 40 个插件、日志记录、互联网连接检查等的怪物……;每次从头开始加载它需要一段时间,所以我创建了一个新版本,它可以作为一个带有托盘图标的单一应用程序。
很好,但是 CblApp 不能使用它:CblApp 不能改变他与 myapp.exe 交互的方式。
问题
现在的问题是:我可以向 CblApp 模拟 myapp.exe 在没有真正执行的情况下关闭吗?
现在我写了一个假的 myapp.exe 来调用单一的 istance 应用程序,等到工作完成,然后关闭自己,但我不喜欢这个解决方案。
希望有人能理解这个纠结的问题。:-)
谢谢!
南多

4

1 回答 1

2

您可以考虑使用 Windows 服务而不是控制台应用程序。

该服务可以启动一次并始终在后台运行,因此您无需在每次调用时初始化所有内容。要与 Windows 服务通信,您可以使用文件、套接字或数据库,只要满足您的需要。

于 2012-06-22T10:03:00.017 回答