-2

VS C# で GUI を構築したいと考えています。この GUI は、スクロールして戻って表示できる (大量の) 更新されたテキストを継続的に表示します。どのコンテナを使用しますか? この作業で大量のメモリを消費しないようにするにはどうすればよいでしょうか? これを行うには、どのような戦略が最適でしょうか?

私の目標: アプリケーションが処理しているすべてのテキスト情報を表示するパネルを UI に作成すること。

verbose コマンドを使用して UNIX シェルでプログラムを開始するのとよく似ています。

GUI タイプ: Windows フォーム

更新間隔:ランダム - 更新は 1 分間に何度も行われますが、

すべての更新は蓄積され、パネルに表示されます (これは、大量という意味です)。これは、実行中のアプリケーションの存続期間にわたって増加します。

4

2 に答える 2

1

コンテンツに追加する場合はDataGridView、変更可能なコレクションに追加できる のようなものを使用する必要があります。aのTextプロパティにはTextBox不変の文字列が含まれているため、古いオブジェクトを GC する前に新しい文字列オブジェクトを構築する必要があるため、それに追加することは一般的に非効率的です。

于 2013-03-07T14:50:41.463 に答える
1

増加するテキスト (1 行ずつ表示される行) を表示する必要があるときはいつでも、テキスト コンテナーではなく、あらゆる種類のリストを使用します。文字列は各操作でコピーされるため、パフォーマンスはひどいものです。

リスト (つまり、ListBox) では、新しい項目を最初または最後に挿入できます。

テキスト全体を 1 つにしたい場合は、エクスポートの時点でテキストを連結できます。これは、コンテンツの更新よりもはるかに少ない頻度で行われます。

于 2013-03-07T15:04:10.360 に答える