2012-09-28 58 views
25

我真的很感激有人幫助我解決了以下問題:StringBuilder.ToString()拋出一個「索引超出範圍」異常

我現在再以下異常我越來越:

指數超出範圍。必須是非負的並且小於 的大小。參數名稱:chunkLength

on stringBuilder.ToString()

奇怪的是,如果我把stringBuilder.ToString()放在手錶中,它完美的工作。

+10

是否有可能您的StringBuilder也被另一個線程使用? –

+1

您能否提供導致異常的snippit,包括如何構建字符串生成器? – deepee1

+0

在事件上調用stringBuilder.AppendLine。然後它會在不同的線程上顯示在屏幕上。 –

回答

27

看起來像是一個多線程問題。我鎖定線程以防止同時多次訪問stringBuilder。

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