Nhìn vào Máy phân tích Tương tranh, Chủ đề xem nó xuất hiện ứng dụng của tôi tạo ra nhiều chủ đề xa hơn nhiều so với tôi nghĩ. Hầu hết trong số này là "CLR Worker Thread" hoặc "Worker Thread".Sự khác biệt giữa Chủ đề công nhân CLR và Chủ đề công nhân là gì?
Sự khác nhau là gì? Trong những trường hợp nào được tạo ra?
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
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
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