0

ログ ファイルにデータを書き込んでおり、そのデータを WinForms UI に表示する必要があります。私の最初の考えは、次のような複数行のテキストボックスを使用することでした:

private void UpdateUITextbox(string text)
{
    textBoxStatus.AppendText(text + Environment.NewLine);
}

ログ ファイルに大量のテキストを書き込むことはありませんが、時間の経過とともに合計され、複数行のテキスト ボックスのデフォルトの最大長を超えてしまう可能性があります。これを防ぐために私が考えられる唯一のことは、OnKeyPress イベント ハンドラーにフックし、何かを追加する前にテキスト ボックスの長さを確認し、必要に応じて古いテキストを削除して、新しいテキスト。しかし、これは間違いなくパフォーマンスに影響を与えるようです。これを行うためのより良い方法があることを誰か教えてください。

4

3 に答える 3

2

Winforms TextBox の最大長は 2GBです。

メモリの問題を心配する前に、使いやすさを心配する必要があります。ログが長すぎると、ユーザーはログを効果的に使用できなくなります。

于 2012-09-18T20:41:39.327 に答える
0

AvalonEditを使用してログを表示します。数十万行まで非常にうまくスケーリングします。

于 2012-09-18T20:42:15.703 に答える
0

複数行のテキスト ボックスの代わりに、リスト ボックスを使用してみませんか?
ログについては、時間などを節約しながらログに情報を追加することをお勧めします。
そして、ロード時に、かなり最近だと思われる範囲の日付スタンプを持つ各行を読み取ります。一度にすべてのログ ファイルをロードするのは賢明ではありません。新しいものだけをロードします。
古いログを表示する必要がある場合でも、時刻/日付スタンプ ソリューションを使用して管理できます。

于 2012-09-18T21:23:32.977 に答える