2012-01-23 10 views

Respuesta

10

No, no son seguros para subprocesos (sin realizar su propio bloqueo).

Utilice una de las colecciones Concurrent en su lugar.

Thread-Safe Collections

El espacio de nombres System.Collections.Concurrent proporciona varias clases de colección de hilo de seguridad que se deben utilizar en lugar de los tipos correspondientes de los System.Collections y espacios de nombres System.Collections.Generic cada vez que varios hilos son accediendo a la colección al mismo tiempo.

+1

Me pregunto por qué no tenemos una clase concurentList –

+0

http://stackoverflow.com/questions/703990/why-is-c-sharp-list-not-thread-safe –

+0

http://blogs.msdn.com/ b/jaredpar/archive/2009/02/11/why-are-thread-safe-collections-so-hard.aspx –

3

La documentación para toda la clase List<T> tiene un segmento de hilo de seguridad:

estáticos públicos (Shared en Visual Basic) de este tipo son seguros para subprocesos. No se garantiza que ningún miembro de instancia sea seguro para subprocesos.

+1

Por verdadero que sea, esta es una documentación estándar que está en prácticamente todos los tipos de .NET (si no todos) . –

+0

Bueno para señalar. Eso explica por qué no hay una lista concurent. La lista ya es concurrente. +1 –

+0

En realidad, no. No hay indicador de que sea seguro para subprocesos. La lista no parece contener ningún método estático. –

Cuestiones relacionadas