¿Por qué no hay colecciones concurrentes en C #?

Estoy tratando de obtener una visión general de la teoría de seguridad de subprocesos detrás de las colecciones en C #.

¿Por qué no hay colecciones concurrentes como las hay en Java? (documentos java). Algunas colecciones parecen ser seguras, pero no me queda claro cuál es la posición, por ejemplo, con respecto a:

operaciones compuestas,seguridad de usar iteradores,operaciones de escritura

¡No quiero reinventar la rueda! (No soy un gurú de múltiples hilos y definitivamente no estoy subestimando lo difícil que sería esto de todos modos).

Espero que la comunidad pueda ayudar.

Respuestas a la pregunta(3)

Su respuesta a la pregunta