私の C# (.NET 2.0) アプリケーションには、容量が 2.5MB の StringBuilder 変数があります。明らかに、このような大きなバッファーがいっぱいになるたびに、そのような大きなバッファーをより大きなバッファー スペースにコピーしたくはありません。とにかく、その時点までにバッファ内に非常に多くのデータがあるため、古いデータを削除することは実行可能なオプションです。私がこれをどのように行っているかについて明らかな問題を誰かが見ることができますか (つまり、私が解決しているよりも多くのパフォーマンスの問題を引き起こしていますか)、または問題ないように見えますか?
tText_c = new StringBuilder(2500000, 2500000);
private void AppendToText(string text)
{
if (tText_c.Length * 100 / tText_c.Capacity > 95)
{
tText_c.Remove(0, tText_c.Length / 2);
}
tText_c.Append(text);
}
編集:追加情報:
このアプリケーションでは、新しいデータがシリアル接続を介して非常に高速に (ミリ秒単位で) 受信されます。アプリケーションのパフォーマンスが低下するため、この新しい情報を複数行のテキストボックスに頻繁に入力したくないので、StringBuilder
. StringBuilder
ときどき、アプリケーションは の内容をテキスト ボックスにコピーし、内容を消去しStringBuilder
ます。