2012-09-28 16 views
25

Realmente agradecería que alguien me ayude a resolver el problema siguiente:StringBuilder.ToString() lanzará una 'índice fuera de rango' Excepción

Me estoy haciendo ahora y entonces la siguiente excepción:

Índice estaba fuera de rango. Debe ser no negativo y menor que el tamaño de de la colección. Nombre del parámetro: chunkLength

en stringBuilder.ToString().

Lo extraño es que si pongo stringBuilder.ToString() en el reloj, funciona perfectamente.

+10

¿Es posible que su StringBuilder también esté siendo utilizado por otro hilo? –

+1

¿Podría proporcionar el snippit que causa la excepción, incluido cómo se genera el generador de cadenas? – deepee1

+0

Se llama al stringBuilder.AppendLine en un evento. Luego se muestra en la pantalla en un hilo diferente. –

Respuesta

27

Parece que es un problema de varios hilos. Cerré el hilo para evitar el acceso múltiple a stringBuilder al mismo tiempo.

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