2010-01-25 35 views
10

Tôi đang sử dụng ThreadPool để thực thi một tập hợp các tác vụ trong dịch vụ cửa sổ. Dịch vụ này sinh ra các chuỗi mới cứ sau mỗi 10 giây. Tôi muốn ghi lại tên của chuỗi đã chọn một tác vụ cụ thể từ cơ sở dữ liệu. Có thể lấy tên của chủ đề không?Tên của chủ đề trong ThreadPool - C#

+0

Bạn có ý nghĩa gì với "tên" của chuỗi? –

+0

@Anon - Tôi tin rằng các chủ đề được gán tên – Nick

Trả lời

7

Tôi không biết nếu đề ThreadPool được gán một ý nghĩa Name, nhưng bạn nên luôn luôn có thể sử dụng ManagedThreadId của CurrentThread cho mục đích gỡ lỗi/khai thác gỗ.

+0

Cảm ơn. Có giá trị nào trong việc lưu trữ ManagedThreadId không. Làm thế nào tôi có thể sử dụng thực tế nó trong gỡ lỗi? – Nick

+0

Vâng, đó là một 'int' là như nhau bất cứ khi nào hai UserWorkItems được thực thi trên cùng một ThreadPool thread. Giá trị chỉ có ý nghĩa trong một lần chạy chương trình. Tôi nghi ngờ có bất kỳ giá trị trong đăng nhập ThreadPool thread tên hoặc ID. Đó là một chi tiết thực hiện mà UserWorkItem được thực thi trên luồng nào. Bạn không nên thực sự quan tâm về điều này. UserWorkItem không nên ảnh hưởng lẫn nhau nếu chúng được thực hiện trên cùng một luồng. – dtb

9

Cách đơn giản nhất cho điều này sẽ là từ bên trong bối cảnh của mỗi chủ đề là bạn có tài sản CurrentThread sẵn và tất cả các thuộc tính được gán cho một sợi:

System.Threading.Thread.CurrentThread.Name 

Giống như một poster trước đó đã đề cập đến mặc dù , có ý nghĩa như thế nào với từ trong một hồ bơi thread, tôi không chắc chắn.

1

Không thử và thay đổi trạng thái luồng khi sử dụng chủ đề từ nhóm. Những chủ đề này không thuộc về bạn, chúng thuộc về thời gian chạy. Bạn không muốn thay đổi nội dung bạn không sở hữu.

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