0

他のタスクの中でも、tcp ソケットを介して別のアプリからリアルタイム ログを受信する c# winforms のクライアント アプリがあります。ログ テキストをリッチテキスト ボックスに追加しただけでは、アプリケーションはすぐに動かなくなります。明らかに、ユーザーは入ってくる速度でテキストを読むことはできませんが、ログを振り返ることができるように、システムを停止および開始する機能が必要です。リッチテキストボックスよりも良い選択肢はありますか? テキストに色を付ける機能と、ログをスクロールして戻る機能を保持したいと思います。WPFの何かがうまくいくでしょうか?

4

1 に答える 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 に答える