在没有关闭的情况下在控制台应用程序上假退出

时间:2012-06-22 09:58:09

标签: c# console-application application-shutdown

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

方案
几年前,我制作了一个简单的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个插件,日志记录,ineternet连接检查等的怪物......;每次从头开始加载都需要一段时间,所以我创建了一个新版本,作为带有托盘图标的单个istance应用程序 很好,但是CblApp无法使用它:CblApp无法改变他与myapp.exe交互的方式 的问题
现在的问题是:我可以模拟到CblApp myapp.exe是否关闭而没有真正做到这一点? 现在我写了一个假的myapp.exe,它调用单个应用程序,等待工作完成,然后自行关闭,但我不喜欢这个解决方案。
希望有人能够解决这个纠结的问题。 :-)
谢谢!
Nando

1 个答案:

答案 0 :(得分:2)

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

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