2011-06-24 19 views
2

私は「多くの仕事をして」、「たくさんの統計情報」を生成するコマンドラインプログラムを持っています。遅延、バグなどに非常に重要な株式取引ソフトウェアなので、GUIを追加したくありません。C#プログラムから別のプログラムにいくつかの "統計"を渡す方法はありますか?

収集した統計情報を読み込み専用モードで表示するGUIが必要です。その統計を転送するには?毎秒更新するだけで十分でしょう。私は、おそらくネットワークによって、将来はローカルではなく、おそらくC#のプログラムで、あるコンソールのC#プログラムから別のGUIに多量のデータを転送する必要があります。

統計情報は、毎秒測定される「センサーデータ」のようなものです。多くの(数百)のセンサーがあります。 (実際のところ、「利益」、「1秒あたりの注文数」などのさまざまな価値があります)

私はプレーンファイル、dbまたはsometingその他を使用する必要がありますか?

答えて

5

任意の形式のIPC(プロセス間通信)を使用できます。

将来的にネットワークを経由する予定なので、WCFをお勧めします。 GUIプログラムが.NETでない場合は、名前付きパイプやソケットなどの下位レベルのソリューションを使用する必要があります。

+0

それは私が期待していたよりも複雑に聞こえる、WCFを学び、戻って来ようとするだろう:) – javapowered

+0

btw私はただのプレーンファイルを使うことができないのですか?統計を1秒に1回ファイルに書き込んでから、1秒に1回読むことができます。 – javapowered

+0

ファイルを使用することは1つの選択肢です。リーダーとライターの両方で共有エラーを処理する必要がありますが、可能です。 –

1

'server'にデータベース内の情報を格納させ、必要に応じて 'client'にこれをポーリングする方が効率的で弾力性があります。

1

DDSのような技術をお勧めします。関係するデータベースはなく、実装するのも難しくありません。私は最近OpenSplice DDSを見始めた。そこにはさまざまな実装があります。

+1

+1 - 非常に興味深いテクノロジー! –

+0

@Stephen:確かに。あなたはそれをチェックアウトする必要があります。私は本当にそれが好き。 –

2

キューイングシステムまたはメッセージングアプライアンスでデータベースを使用できます。サーバーはキューにメッセージを受信し、GUIはそのメッセージに「購読」することができます。

Microsoft Message Queuing

また、あなたは、メモリを見てとることができ、ファイルマッピングされた:

Memory-mapped file

適切に設定すると、これらが同時にアプリケーション間で共有することができます。助け

希望、

ジェフリー・ケビンPRY

0

はもちろん、これは、単一のコメントを超えて道を行きます。最終的に必要となるのは、加入者にデータレコードの更新について通知するディスパッチメカニズムです。データ量が膨大なので、永続ストレージを選択したくないかもしれません。複数のユーザへのディスパッチがこれまでに圧倒的に見える場合は、コンシューマプロバイダが同じマシン上にあるか、それ以外の方法で分散された共有オブジェクト(名前付きパイプ)を使用して簡単なinterprocを実行することができます。

関連する問題