web-dev-qa-db-ja.com

StringBuilder.ToString()は「インデックスが範囲外です」例外をスローします

誰かが私が次の問題を解決するのを手伝ってくれることを本当に感謝します:

私は時々次の例外を取得しています:

インデックスが範囲外でした。負ではなく、コレクションのサイズ未満である必要があります。パラメータ名:chunkLength

stringBuilder.ToString()に。

奇妙なことに、時計にstringBuilder.ToString()を入れると、完全に機能します。

28
Gerhard Powell

マルチスレッドの問題のようです。 stringBuilderへのマルチアクセスを同時に防ぐためにスレッドをロックしました。

public void AddString(string s)
{
  lock(this.LockObject)
  {
     StringBuilder.AppendLine(s);
  }
} 
34
Gerhard Powell