Tôi đang viết một lớp thực hiện một hoạt động nhất định trong thư viện. Nhưng các hoạt động là tẻ nhạt, và tôi muốn để có thể tìm ra sự tiến bộ của phương pháp bên trong lớp đó để tôi có thể sử dụng nó trong một ứng dụng WinForms để báo cáo sự tiến bộ.Viết phương pháp báo cáo tiến độ
Tôi đang lên kế hoạch chạy lớp của mình trên một chuỗi khác trong ứng dụng WinForms của mình và tôi muốn lớp được tách khỏi các mối quan tâm của ứng dụng WinForms và tôi không muốn liên kết nó với bất kỳ điều gì khác ngoài nó có.
Cách tốt nhất để triển khai cơ chế báo cáo tiến trình trong lớp thư viện là gì?
Một ý tưởng hay là bằng cách nào đó có một biến tiến bộ trong lớp và thêm trình xử lý sự kiện vào nó trong ứng dụng WinForms của tôi? Và nếu nó là, làm thế nào tôi có thể làm điều đó?
Chỉnh sửa: Tôi đã sử dụng lớp BackgroundWorker
trước đây, nhưng vấn đề của tôi là tôi không muốn lớp thư viện của mình quan tâm đến bất kỳ hoạt động đa luồng nào. Vì vậy, tôi không muốn gọi ReportProgress
trong lớp thư viện, tôi muốn (có thể) có một biến trong lớp có chứa tiến trình hiện tại và tôi muốn chuỗi giao diện người dùng bằng cách nào đó "đăng ký" với nó. Tôi không biết nếu đó là một cách tốt để thiết kế nó mặc dù.
Có nhiều cách tiếp cận khác nhau nhưng mã hiện tại của bạn trông như thế nào ..? nó sẽ giúp nếu bạn sẽ cung cấp những gì bạn đã thử cho đến nay .. – MethodMan
Tôi không có nhiều mã vào lúc này. Tôi muốn tìm hiểu cách tiến hành trước khi viết lớp. Tôi thực sự đánh giá cao nếu bạn có thể chỉ cho tôi một số cách tiếp cận nổi tiếng cho vấn đề này. – hattenn