2009-07-03 31 views
37

Tại sao Console.WriteLine hoạt động từ nhiều luồng?Gọi Console.WriteLine từ nhiều chủ đề

+12

Tại sao không nên nó? – balpha

+17

@balpha - Câu hỏi là * tại sao nó hoạt động *, * lý do hoạt động là gì *. Không có gì nói rằng nó không hoạt động. Bình luận của bạn là snide và gây khó chịu. –

+13

Tôi xin lỗi, nó không có nghĩa là âm thanh theo cách này. Những gì nó nói là: Thực tế là bạn đặt câu hỏi này cho thấy rằng bạn nghĩ rằng đó là một bất ngờ rằng nó hoạt động. Tôi thực sự muốn biết tại sao, bởi vì tôi biết khá mouch không có gì về đa luồng và cảnh báo của nó. Xin lỗi nếu nó nghe có vẻ thô lỗ. – balpha

Trả lời

50

Lớp bảng điều khiển xử lý đồng bộ hóa chủ đề cho bạn.

Từ các tài liệu của Console:

I/O hoạt động sử dụng các con suối đang đồng bộ, có nghĩa là nhiều đề có thể đọc từ, hoặc gửi thư cho, các con suối.

+0

Vâng, cảm ơn Reed. –

+0

+1 Cảm ơn bạn đã giải thích rõ câu trả lời của tôi, hãy đặt. –

+0

@Reed có được đồng bộ hóa bằng cách khóa hoặc với một số cơ chế đồng bộ hóa khác không? – Kiril

2

Nhiều luồng ghi cùng một đầu ra khi sử dụng Console.WriteLine, thường là màn hình của bạn theo mặc định.

+0

Vì vậy, Console.WriteLine được mã hóa như là chuỗi an toàn sau đó? Một khối thread trong khi viết khác? –

+0

Đó là - xem câu trả lời của tôi cho các chi tiết từ MSDN. –

6

Có một lỗi trong .NET 4.5 CLR mà làm Console.WriteLine không công việc từ nhiều chủ đề nếu bạn sử dụng Console.ReadKey. Nó được sửa trong một số phiên bản Windows, nhưng trong 8.1 Windows Update không tìm thấy nó.

Infrequent hangs in a multi-threaded C# console application when using Console.Writeline() or Console.Write()

Using Console.WriteLine in a Timer why it would appear to exit?

+0

Cảm ơn bạn đã liên kết! –

Các vấn đề liên quan