Kịch bản của chúng tôi là máy quét mạng.Trong .NET có một bộ lập lịch trình cho các chủ đề dài chạy không?
Kết nối với một nhóm máy chủ và quét chúng song song trong một thời gian sử dụng các chuỗi nền ưu tiên thấp.
Tôi muốn có thể lên lịch cho nhiều tác phẩm nhưng chỉ có bất kỳ số lượng nào được cho là mười hoặc bất kỳ số lượng máy chủ nào được quét song song. Ngay cả khi tôi tạo ra các chủ đề của riêng tôi, nhiều callback và goodness không đồng bộ khác sử dụng ThreadPool và cuối cùng tôi đã hết tài nguyên. Tôi nên xem MonoTorrent ...
Nếu tôi sử dụng THE ThreadPool, tôi có thể giới hạn đơn đăng ký của mình cho một số số để đủ cho phần còn lại của ứng dụng chạy trơn tru không?
Có một threadpool mà tôi có thể khởi tạo để n chủ đề sống lâu?
[Chỉnh sửa] Không ai có thể nhận thấy rằng tôi đã đưa ra một số nhận xét về một số câu trả lời vì vậy tôi sẽ thêm một vài điều ở đây.
- Các chủ đề phải được hủy cả hai một cách duyên dáng và mạnh mẽ.
- Chủ đề phải có mức độ ưu tiên thấp để thoát khỏi giao diện GUI.
- Chủ đề đang chạy dài nhưng theo Thứ tự (phút) và không phải Thứ tự (ngày).
làm việc cho một loạt mục tiêu đặt ra về cơ bản là:
For each test
Probe target (work is done mostly on the target end of an SSH connection)
Compare probe result to expected result (work is done on engine machine)
Prepare results for host
Ai đó có thể giải thích tại sao bằng cách sử dụng SmartThreadPool được đánh dấu wit ha tính hữu dụng tiêu cực?
câu trả lời Jeff xương ức dường như thích hợp, mặc dù thay vì BackgroundWorker bạn có thể được tốt hơn off tạo riêng 'trường System.Threading.Thread' của bạn. Tuy nhiên, bạn cũng đề cập đến rằng ngay cả trong các chủ đề của riêng bạn, bạn đang chạy ra khỏi tài nguyên thread-pool vì các hoạt động không đồng bộ. Có lẽ bạn nên giải thích lý do tại sao bạn đang thực hiện các hoạt động không đồng bộ trong một chuỗi mà bạn đã dành riêng để chạy các hoạt động đó. –
Sau một số tìm kiếm khác, tôi đã xem qua một ThreadPool http://smartthreadpool.codeplex.com/ khác có thể xảy ra tại chỗ. Tôi sử dụng công cụ asynch trong chuỗi công nhân để xử lý đầu ra và lỗi khi chúng xảy ra. Khi ứng dụng chạy, người dùng được cung cấp phản hồi để họ xem cách xa từng tác vụ. – LogicMagic
Ứng dụng được viết bằng GTK # và mẫu MVC. Có một giao diện GUI khi một số sự kiện nhất định kích hoạt, luồng GUI được sắp xếp và được cập nhật.Việc quét không phải là ping đơn giản, ứng dụng là một máy quét xác thực xem xét cấu hình của các mục tiêu. Quá trình quét sẽ mất thời gian O (phút) để hoàn thành. cho mỗi máy chủ. Một số báo cáo máy chủ được thực hiện trên máy công cụ trên mỗi luồng máy chủ vì lý do hiển nhiên. Một quá trình được tạo ra cho mỗi kết nối mà có lẽ là tốn kém, nhưng so với phút nó không quan trọng. – LogicMagic