2009-07-03 11 views
37

Warum funktioniert Console.WriteLine aus mehreren Threads?Console.WriteLine aus mehreren Threads aufrufen

+12

Warum sollte es nicht? – balpha

+17

@balpha - Die Frage ist * warum funktioniert es *, * was ist der Grund, es funktioniert *. Es gibt nichts, was sagt, dass es nicht funktioniert. Ihr Kommentar ist abfällig und beleidigend. –

+13

Es tut mir leid, es sollte nicht so klingen. Was es sagt ist: Die Tatsache, dass Sie diese Frage stellen, deutet darauf hin, dass Sie denken, dass es eine Überraschung ist, dass es funktioniert. Ich hätte es wirklich gerne gewusst, warum, denn ich weiß ziemlich viel über Multithreading und seine Vorbehalte. Entschuldigung, wenn es unhöflich klang. – balpha

Antwort

50

Die Konsolenklasse übernimmt die Thread-Synchronisation für Sie.

Aus der Dokumentation von Console:

I/O-Operationen werden diese Ströme unter Verwendung von synchronisiert ist, was bedeutet, dass mehrere Fäden aus lesen kann, oder schreiben, den Strömen.

+0

Ja, danke Reed. –

+0

+1 Danke für die Klärung meiner Antwort, gut gemacht. –

+0

@Reed ist es synchronisiert durch Sperren oder mit einem anderen Synchronisationsmechanismus? – Kiril

2

Mehrere Threads schreiben auf den gleichen Ausgang, wenn verwendet wird, im Allgemeinen Ihr Bildschirm standardmäßig.

+0

Also Console.WriteLine ist dann als threadsicher codiert? Ein Thread blockiert, während der andere schreibt? –

+0

Es ist - siehe meine Antwort für die Details von MSDN. –

Verwandte Themen