2009-07-03 15 views
37

¿Por qué Console.WriteLine funciona desde varios subprocesos?Consola de llamada.WriteLine de varios subprocesos

+12

Por qué no habría de hacerlo? – balpha

+17

@balpha - La pregunta es * por qué funciona *, * cuál es la razón por la que funciona *. No hay nada que diga que no funciona. Tu comentario es sarcástico y ofensivo. –

+13

Lo siento, no estaba destinado a sonar de esta manera. Lo que dice es: el hecho de que hagas esta pregunta sugiere que piensas que es una sorpresa que funcione. Realmente me hubiera gustado saber por qué, porque sé que no se puede negar nada con respecto al multihilo y sus advertencias. Disculpa si sonaba grosero. – balpha

Respuesta

50

La clase de consola maneja la sincronización de subprocesos por usted.

De la documentación de Console:

operaciones de E/S que utilizan estos flujos se sincronizado, lo que significa múltiples hilos pueden leer o escribir en, las corrientes.

+0

Sí, gracias Reed. –

+0

+1 Gracias por la aclaración sobre mi respuesta, bien puesto. –

+0

@Reed ¿está sincronizado mediante bloqueo o con algún otro mecanismo de sincronización? – Kiril

2

Varios hilos escriben en la misma salida al usar Console.WriteLine, generalmente su pantalla por defecto.

+0

¿Entonces Console.WriteLine está codificada como hilo seguro? ¿Un hilo bloquea mientras el otro escribe? –

+0

Es - ver mi respuesta para los detalles de MSDN. –

Cuestiones relacionadas