2 番目のアプリケーションが何らかの処理を行ったときに、1 つのアプリケーションでタスクを実行する必要があります。そのために、私はイベントを使用しています。
各アプリケーションに同じ名前のイベントを作成しました。名前とは、イベントの作成中に渡されるパラメーターを意味します。コードは両方のアプリケーションで次のようになります。
using System.Threading;
EventWaitHandle Multi_App = new EventWaitHandle(false, EventResetMode.ManualReset, "Process_Done");
処理後、アプリケーション「A」はこのイベントを呼び出して設定します
Multi_App.Set()
アプリケーション「B」が、このイベントが設定されていることを認識し、特定の機能を実行する必要がありますApp_A_Done()
。それまでは、他のタスクを実行します。
私にとっての1つのオプションは、スレッドを作成することでした。そのスレッドでは、イベントを待っています
Multi_App.WaitOne();
イベントを取得するたびに、関数App_A_Done
が手動で呼び出されます。
このイベントに「サブスクライブ」すると、イベントが設定されるたびにこの機能が自動的に実行されると友人が教えてくれました。したがって、スレッドなどは必要ありません。
試してみましたが、そのようなイベントをサブスクライブする方法がわかりませんでした。
このMSDNの記事は、私が書くことができると言います
publisher.RaiseCustomEvent += new CustomEventHandler(HandleCustomEvent);
Mutli_App.Set += new....
しかし、これを私のケースに適用するにはどうすればよいですか?
助言がありますか?