2009-07-03 14 views
37

Perché Console.WriteLine funziona con più thread?Chiamare Console.WriteLine da più thread

+12

Perché non dovrebbe? – balpha

+17

@balpha - La domanda è * perché funziona *, * qual è la ragione per cui funziona *. Non c'è nulla che dice che non funzioni. Il tuo commento è subdolo e offensivo. –

+13

Mi dispiace, non intendeva suonare in questo modo. Quello che dice è: il fatto stesso che tu fai questa domanda suggerisce che pensi che sia una sorpresa che funzioni. Avrei davvero voluto sapere perché, perché non conosco abbastanza niente del multi-threading e dei suoi avvertimenti. Scuse se sembrava maleducato. – balpha

risposta

50

La classe della console gestisce la sincronizzazione dei thread per conto dell'utente.

Dalla documentazione di Console:

operazioni di I/O che utilizzano questi flussi sono sincronizzati, il che significa multipli thread possono leggere o scrivere, i flussi.

+0

Sì, grazie Reed. –

+0

+1 Grazie per il chiarimento sulla mia risposta, ben inserito. –

+0

@Reed è sincronizzato bloccando o con qualche altro meccanismo di sincronizzazione? – Kiril

2

Più thread scrivono sulla stessa uscita quando si utilizza Console.WriteLine, in genere lo schermo per impostazione predefinita.

+0

Quindi Console.WriteLine è codificato come thread safe, quindi? Un thread si blocca mentre l'altro scrive? –

+0

È - vedere la mia risposta per i dettagli da MSDN. –

Problemi correlati