Warum funktioniert Console.WriteLine aus mehreren Threads?Console.WriteLine aus mehreren Threads aufrufen
Antwort
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.
Ja, danke Reed. –
+1 Danke für die Klärung meiner Antwort, gut gemacht. –
@Reed ist es synchronisiert durch Sperren oder mit einem anderen Synchronisationsmechanismus? – Kiril
Mehrere Threads schreiben auf den gleichen Ausgang, wenn verwendet wird, im Allgemeinen Ihr Bildschirm standardmäßig.
Also Console.WriteLine ist dann als threadsicher codiert? Ein Thread blockiert, während der andere schreibt? –
Es ist - siehe meine Antwort für die Details von MSDN. –
Es ist ein Fehler in .NET 4.5 CLR die Console.WriteLine nicht Arbeit von mehreren Threads macht, wenn Sie Console.ReadKey verwenden. Es ist in einigen Windows-Versionen behoben, aber in 8.1 Windows Update findet es noch nicht.
Using Console.WriteLine in a Timer why it would appear to exit?
Vielen Dank für die Links! –
- 1. JNI Java aus C++ mit mehreren Threads aufrufen
- 2. Console.WriteLine (ex.Message) aufrufen, um Warnmeldung zu vermeiden
- 3. In Textdatei aus mehreren Threads schreiben?
- 4. Aktualisieren eines Maximalwerts aus mehreren Threads
- 5. Ereignisse Cross-Threads aufrufen?
- 6. Ausführen von mehreren Threads
- 7. Welche Auswirkungen hat das Aufrufen der C API-Funktionen von NumPy aus mehreren Threads?
- 8. Loops in mehreren Threads
- 9. Kann Aufruf von WSAStartup() aus mehreren Threads einen Deadlock verursachen?
- 10. Console.WriteLine Grundlagen
- 11. Aufruf accept() von mehreren Threads
- 12. Lesen aus einer SQS-Warteschlange mit mehreren Threads
- 13. Python - an dieselbe Datei aus mehreren Threads anfügen
- 14. Wie führe ich eine JAR-Datei in mehreren Threads aus?
- 15. Rendern auf ein einzelnes Bitmap-Objekt aus mehreren Threads
- 16. Schreiben in eine einzelne Datei aus mehreren Threads in Ruby
- 17. Jmeter Zufallsvariable in mehreren Threads
- 18. Android: OpenGL in mehreren Threads
- 19. Java-Einzelprozess mit mehreren Threads
- 20. Web Parser mit mehreren Threads
- 21. Senden von Daten über NetworkStream mit mehreren Threads
- 22. Kann COM-Objekt, das aus STAThread von anderen STA-Threads erstellt wird, nicht aufrufen
- 23. Mit React eine Variable aus mehreren Dateien aufrufen?
- 24. Kann die weakReference.get() -Methode sicher mehrere Threads gleichzeitig aufrufen?
- 25. Console.WriteLine nicht chinesische Schriftzeichen
- 26. Java: Synchronisieren von Threads auf mehreren Servern
- 27. Console.WriteLine beschleunigt meinen Code?
- 28. C# Aktualisierung TextBox von mehreren Threads
- 29. Perl: Build komplexer Objektbaum mit mehreren Threads
- 30. Beobachtbar von Futures - onNext von mehreren Threads
Warum sollte es nicht? – balpha
@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. –
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