おはようございます。
これは変な質問だと思いますが、どうか辛抱してください! :-)
シナリオ
何年も前に、大きな COBOL アプリケーション (CblApp と呼びます) を処理する単純な C# コンソール アプリケーション (MyApp、myapp.exe と呼びます) を作成しました。
このアプリは通常、いくつかのファイルを読み取り、要求された作業 (Web サービスの呼び出しなど) を実行し、いくつかの出力ファイルを書き込みます。
CblApp との対話は、次のように機能します。
- CblApp は myapp.exe を呼び出します (例: myapp.exe -i:readinputfilefile.xml -w:writerresults.xml)。
- myapp.exe が閉じられるまで、CblApp は自身をブロックします (同期方法)。
- myapp.exe が終了して閉じると、CblApp は結果ファイルを読み取ります
MyApp はプラグイン ベースであり、現在では 40 個のプラグイン、ログ記録、インターネット接続チェックなどを備えたモンスターです。毎回ゼロからロードするのは時間がかかるので、トレイアイコン付きの単一インスタンスアプリケーションとして機能する新しいバージョンを作成しました。
素晴らしいですが、CblApp はそれを使用できません: CblApp は myapp.exe と対話する方法を変更できません。
質問
質問: myapp.exe が閉じられていることを、実際に実行せずに CblApp にシミュレートできますか?
今、単一のインスタンスアプリを呼び出し、作業が完了するまで待機し、それ自体を閉じる偽の myapp.exe を作成しましたが、このソリューションは好きではありません。
誰かがこのもつれた質問を理解してくれることを願っています。:-)
ありがとう!
ナンド