1

SQLデータベースを呼び出すC#プログラムがあります。このプログラムを10回複製し、すべてのプログラムで同時にSQLデータベースを呼び出すようにします。これはどのように行われますか?

タイマー/ループでデータをプルしています。たとえば、プログラムAがプログラムBの前に実行された場合、更新時間は異なります。この更新を同期する方法はありますか?

4

2 に答える 2

3

中間者が必要です。つまり、デスクトップクライアントとDBの間にサービスを提供する必要があります。そのサービスには更新タイマーが含まれます。

これで、X秒ごとに、そのサービスにpingを実行して、更新時刻が変更されたかどうかを確認します。そして、クライアントがデータを要求するたびに、サービスのタイマーを更新します。したがって、更新するための残りの3分があると仮定します。すべてのクライアントはそれを知っていますが、プログラムAがそのタイマーを変更する何かを実行すると、他のpingがサービスに通知し、内部更新タイマーも変更します。

于 2012-09-19T16:38:02.443 に答える
1

おそらく最も簡単な解決策は、1分ごとにDBを呼び出すことだと思います。すべてのクライアントが同じタイムサーバーを持っているので、時計を同期させる必要がありますか?

または、すべてのクライアントがソケットを介して接続するサーバーアプリケーションを使用したり、単純なHTTPリクエストを介してデータをプルしたりすることもできます。「更新コマンド」を取得すると、データベースにクエリを実行するだけです。

または、データベースにクエリを実行してデータをキャッシュするサーバーアプリケーションを作成します。そして、クライアントはキャッシュを照会するだけです。WCFで簡単に実装できます

于 2012-09-19T16:48:07.987 に答える