2011-11-29 3 views

Trả lời

7

Trình hiển thị đồng thời là một tính năng mới nhưng thực sự rất tuyệt! Tính năng nên có một chút (tôi tin rằng chưa) thông tin liên quan đến nó, dưới đây là những gì tôi đã tìm thấy trong các nguồn thông tin chính thức như MSDN:

  • Worker thread - Một chủ đề được tạo ra bởi các chủ đề chính ứng dụng (chính chủ đề entry trong bảng)
  • CLR Worker chủ đề - Một sợi nhân đã được tạo ra bởi các Common Language Runtime

liên kết hữu ích:

+0

Trong hoàn cảnh nào không CLR tạo chủ đề? Có phải các chủ đề này được tạo bởi [ThreadPool] (http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx) không? Với câu trả lời của bạn, tôi cũng bị hoang mang bởi số lượng chủ đề công nhân tuyệt đối, tôi không hiểu làm thế nào tôi có thể tạo ra rất nhiều. – pomeroy

+0

Thật khó để nói mà không cần nhìn vào mã ứng dụng của bạn. CLR có thể tạo ra các nhân viên CLR để thu gom rác, liên quan đến chủ đề ứng dụng, một lần nữa đây chỉ là phỏng đoán, nhưng giả sử rằng ứng dụng sử dụng Thread Pool cũng có hành vi được ghi lại tài liệu - "nếu ứng dụng xếp hàng nhiệm vụ cho thread thread nhanh hơn một thread xử lý nó, sau đó các hồ bơi thread sẽ tạo ra chủ đề bổ sung. ", và" Điều thú vị về một hồ bơi thread là nó là heuristic. Nếu ứng dụng của bạn cần phải thực hiện nhiều nhiệm vụ, sau đó hồ bơi thread tạo thêm chủ đề. " – sll

+0

Nhìn vào ảnh chụp màn hình bạn chỉ có một luồng ứng dụng đang hoạt động (ngoại trừ chủ đề chính) màu tím trên biểu đồ dòng thời gian, có nghĩa là nó tham gia vào hoạt động I/O (bạn đang đọc luồng/luồng mạng, cổng io hoặc tương tự), tất cả các chủ đề khác bị chặn để đồng bộ hóa. Tôi không có ý tưởng tại sao bạn có nhiều chủ đề công nhân bị chặn, là bạn tạo chủ đề trong một số vòng lặp đồng bộ? – sll