Perché Console.WriteLine funziona con più thread?Chiamare Console.WriteLine da più thread
risposta
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.
Sì, grazie Reed. –
+1 Grazie per il chiarimento sulla mia risposta, ben inserito. –
@Reed è sincronizzato bloccando o con qualche altro meccanismo di sincronizzazione? – Kiril
Più thread scrivono sulla stessa uscita quando si utilizza Console.WriteLine
, in genere lo schermo per impostazione predefinita.
Quindi Console.WriteLine è codificato come thread safe, quindi? Un thread si blocca mentre l'altro scrive? –
È - vedere la mia risposta per i dettagli da MSDN. –
c'è un bug in .NET 4.5 CLR che rende Console.WriteLine non lavoro da più thread se si utilizza Console.ReadKey. È stato risolto in alcune versioni di Windows, ma in Windows Update non lo trova ancora.
Using Console.WriteLine in a Timer why it would appear to exit?
Grazie per i collegamenti! –
- 1. Il thread di console.writeline è sicuro?
- 2. Come Console.WriteLine da [TestMethod]?
- 3. Console.Writeline da EventHandler
- 4. StringBuilder modificato da più thread
- 5. Calling accetta() da più thread
- 6. Perché Console.WriteLine() blocca in callback da Stream.ReadAsync()?
- 7. basi Console.WriteLine
- 8. Osservabile da Futures - onNext da più thread
- 9. Chiamare più comandi da powershell e.g psftp
- 10. Attendere più thread (thread Posix, C++)
- 11. Console.WriteLine velocizza il mio codice?
- 12. Chiamare i metodi @Transactional da un altro thread (Runnable)
- 13. È int sicuro leggere da più thread?
- 14. Registrazione di Python da più thread
- 15. Decapaggio da più thread in Python
- 16. console.writeline e System.out.println
- 17. F #: printf vs Console.WriteLine
- 18. Console.WriteLine come esadecimale
- 19. Il blocco Console.WriteLine?
- 20. Chiamare pjlib da thread sconosciuto/esterno. È necessario "" registrare thread esterni con pj_thread_register()
- 21. Chiamare un metodo alla chiusura del thread
- 22. È ok attendere la stessa operazione da più thread - è in attesa di thread sicuro?
- 23. Attiva più thread istantaneamente su akka.net
- 24. JNI che chiama Java da C++ con più thread
- 25. int [] utilizzando "sbagliato" Console.WriteLine overload
- 26. Più thread e memoria
- 27. È valido chiamare pthread_join sul thread principale?
- 28. Va bene non chiamare Thread # join?
- 29. Sta chiamando wait() su uno std :: future più volte e da più thread sicuri?
- 30. Chiamare più stored procedure utilizzando Async/Await e EntityFramework
Perché non dovrebbe? – balpha
@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. –
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