2009-07-03 30 views
37

Dlaczego Console.WriteLine działa z wielu wątków?Wywołanie Console.WriteLine z wielu wątków

+12

Dlaczego nie powinno? – balpha

+17

@balpha - Pytanie brzmi: * dlaczego to działa *, * z jakiego powodu działa *. Nic nie mówi, że to nie działa. Twój komentarz jest chytry i obraźliwy. –

+13

Przepraszam, nie miało to brzmieć tak. To, co mówi, brzmi: sam fakt, że zadajesz to pytanie, sugeruje, że uważasz, że to zadziwiające, że działa. Naprawdę chciałbym wiedzieć dlaczego, bo wiem, że nie ma nic wspólnego z wielowątkowością i jej zastrzeżeniami. Przeprosiny, jeśli brzmiały niegrzecznie. – balpha

Odpowiedz

50

Klasa konsoli obsługuje synchronizację wątku.

Z dokumentacji Console:

I/O operacje wykorzystujące te strumienie są zsynchronizowane, co oznacza wielokrotne wątków może odczytać danych z lub zapisu, strumieni.

+0

Tak, dziękuję Reed. –

+0

+1 Dziękuję za wyjaśnienie mojej odpowiedzi, dobrze. –

+0

@Reed jest synchronizowany przez blokowanie lub z innym mechanizmem synchronizacji? – Kiril

2

Wiele wątków pisze na to samo wyjście, gdy używasz Console.WriteLine, zazwyczaj twój ekran domyślnie.

+0

Więc Console.WriteLine jest zakodowana jako wątek bezpieczny? Jedna nić blokuje, podczas gdy druga pisze? –

+0

Jest - zobacz moją odpowiedź na dane z MSDN. –

Powiązane problemy