sự khác biệt giữa nền, tiền cảnh & chủ đề chính là gì? Các loại chủ đề khác trong .NET là gì?Chủ đề nền, tiền cảnh và chủ đề chính là gì?
Trả lời
Chủ đề nền (có đối tượng Chủ đề có thuộc tính Background
được đặt thành true
) sẽ không ngăn ứng dụng thoát.
Sau khi tất cả các luồng bình thường (tiền cảnh) đã thoát, mọi chuỗi nền đang chạy sẽ bị chấm dứt ngay lập tức. Ngoài ra, nếu một AppDomain được tải xuống, tất cả các chủ đề nền trong AppDomain sẽ bị hủy ngay lập tức.
Chủ đề do ThreadPool quản lý là chủ đề nền.
Chủ đề tiền cảnh là một chuỗi bình thường.
Chủ đề chính là chuỗi ban đầu đã bắt đầu chương trình. (Sợi chỉ chạy phương pháp Main
)
Để biết thêm thông tin, hãy xem here.
Sự khác biệt được nêu rõ trong tài liệu. Chủ đề nền bị gián đoạn khi chương trình kết thúc.
http://msdn.microsoft.com/en-us/library/h339syd0(VS.71).aspx
Liên kết tốt đẹp +1 :) –
Một sợi nền là chính xác điều đó, nó là một chủ đề đang chạy trong nền từ thread UI của ứng dụng. Chuỗi giao diện người dùng trong một ứng dụng như ứng dụng winforms là luồng chịu trách nhiệm sao chép giao diện người dùng và các tương tác của người dùng khác.
Di chuyển các quy trình chạy dài sang chuỗi nền sẽ giúp cải thiện khả năng sử dụng. Đây là một tốt intro document để luồng cho bạn.
SLaks, có giới hạn về số lượng chuỗi trong threadpool không? – SoftwareGeek
Có, có; đọc liên kết. Giới hạn mặc định là 250 cho mỗi CPU; bạn có thể thay đổi nó bằng cách gọi 'ThreadPool.SetMaxThreads'. – SLaks
Tôi có thể bị nhầm lẫn, nhưng tôi nghĩ giới hạn là mỗi lõi. Một điểm khác, có rất ít cơ hội bạn cần có nhiều chủ đề trong ứng dụng của bạn. Tất cả những gì bạn sẽ làm là thêm luồng trên không. Từ kinh nghiệm 2/3 chủ đề của lõi có vẻ như là một lựa chọn tốt. –