1

私のアプリケーションには、トランスポート イベントを表示するリストビューがあります。このリストビューは、イベントを追跡するために 1 秒ごとに更新する必要があります。私は単純に、1つの接続オブジェクトdataReaderを宣言するタイマー(1000間隔)でそれを行い、リストビューを埋めます。最後に、接続と別のオブジェクトを破棄します(これはすべてのタイマーティックです)。

さて、それを行うためのより良い方法はありますか? パフォーマンス、メモリ、またはその他の点でおそらく優れていますか?

私は専門家ではないので、毎秒多くのconncetionを宣言していると、メモリの問題が発生する可能性があると思いました:)(間違っている場合は修正してください)

データベース アクセス 2007 VS 2012

ありがとうございました。

4

1 に答える 1

1

ADO.NETを使用してデータベースにアクセスしていると仮定すると、.NETは接続プールを使用してDB接続を閉じたり再度開いたりすることによるパフォーマンスへの影響を最小限に抑えるため、アクセスモデルは問題ありません。

ただし、アーキテクチャ全体が疑問視される場合があります。タイマーの更新をポーリングすることは、通常、最善のオプションではありません。より良いアプローチは、更新シーケンスを別のテーブルに維持することです。テーブルには単一の行があり、int最初は単一の列がゼロに設定されています。「実際の」データが更新されるたびに、この数は1つ増えます。このテーブルを配置すると、プログラムはデータセット全体を再読み取りするのではなく、毎秒この1つの数値だけを読み取ることができます。プログラムは、番号が前回と同じであることを検出すると、停止して次のタイマー間隔を待ちます。それ以外の場合は、データセットを再読み取りします。

于 2013-03-24T00:13:48.920 に答える