同時に実行され、データを共有する2つの異なるアプリケーションの統合に取り組んでいます。1つのアプリケーションはデータを提供し、もう1つのアプリケーションは外部システムとデータに基づいていくつかの値を計算し、それを最初のアプリケーションに提供する必要があります。
このライブラリを使用して、アプリケーション間でデータを共有しています:http: //grouplab.cpsc.ucalgary.ca/cookbook/index.php/Toolkits/Networking
ライブラリは基本的に、任意のアプリケーションからクエリできる共有ディクショナリを作成できます(共有ディクショナリの場所を知っている限り)。
したがって、プログラムAはプログラムBにデータを提供する必要があり、プログラムBはこのデータを使用して、他のデータをプログラムAに返します。
私の問題は、プログラムAにBからの応答を待機させる方法です。より具体的には、オブジェクトを共有ディクショナリに配置し、他のプログラムにディクショナリの変更が通知され、いくつかの属性を計算できます。ディクショナリ内のオブジェクトを更新します。プログラムAは通知を受け取ることができますが、プログラムAがこの応答を返すまで待機する必要があります。プログラムAのアクションは、戻り値に基づいている必要があります。
これを実行できる非常に醜い方法は、関数内に無限ループを設定することです。これにより、辞書にクエリを実行して、オブジェクトが更新されているかどうかを確認します。ループから抜け出し、オブジェクトとその計算された属性を使用している場合。誰かがより良い解決策を知っていますか?