他のタスクの中でも、tcp ソケットを介して別のアプリからリアルタイム ログを受信する c# winforms のクライアント アプリがあります。ログ テキストをリッチテキスト ボックスに追加しただけでは、アプリケーションはすぐに動かなくなります。明らかに、ユーザーは入ってくる速度でテキストを読むことはできませんが、ログを振り返ることができるように、システムを停止および開始する機能が必要です。リッチテキストボックスよりも良い選択肢はありますか? テキストに色を付ける機能と、ログをスクロールして戻る機能を保持したいと思います。WPFの何かがうまくいくでしょうか?
1 に答える
1
次のようなリストにすべての行を追加できます。
public class LogLine
{
public string Message { get; set; }
public Color Color { get; set; }
public DateTime TimeStamp { get; set; }
}
List<LogLine> _log = new List<LogLine>(5000);
仮想化をサポートするコントロールを使用して LogLines を表示します。たとえば、スクロール位置に基づいてリストから手動で値を割り当てる 10 個のラベル/テキスト ブロックを使用して、独自のものを作成することもできます。リストを無制限に大きくすると、ソリューションはメモリを消費します。巨大なログが必要な場合は、ファイルシステムを使用してデータを保存し、リストを定期的に切り捨てる必要があります。
于 2012-08-16T15:05:24.817 に答える