Piszę klasę, która wykonuje pewną operację w bibliotece. Ale operacja jest nużąca i chcę być w stanie dowiedzieć się o postępie metody wewnątrz tej klasy, dzięki czemu mogę jej używać w aplikacji WinForms do raportowania postępu.Pisanie metody zgłaszania postępu
Mam zamiar uruchomić moją klasę w innym wątku w mojej aplikacji WinForm i chcę, aby klasa została oddzielona od obaw aplikacji WinForm i nie chcę jej wiązać z niczym innym niż to robi.
Jaki byłby najlepszy sposób wdrożenia mechanizmu raportowania postępu w klasie biblioteki?
Czy byłoby dobrze mieć zmienną postępu w klasie i dodać do niej odbiornik zdarzeń w mojej aplikacji WinForm? A jeśli tak, jak mogę to zrobić?
Edit: mam przed używane klasę BackgroundWorker
, ale moim problemem jest to, że nie chcę, aby moje klasy biblioteki, aby zajmować się którykolwiek z wielowątkowości operacji. Tak więc nie chcę wywoływać klasy biblioteki w klasie ReportProgress
, chcę (może) mieć zmienną w klasie, która zawiera bieżący postęp i chcę, aby wątek interfejsu użytkownika w jakiś sposób "zasubskrybował" go. Nie wiem, czy to dobry sposób na zaprojektowanie tego.
Jest wiele różnych podejść do tego, ale jak wygląda twój istniejący kod ...? pomogłoby ci, gdybyś dostarczył tego, co dotychczas próbowałeś. – MethodMan
Nie mam w tej chwili zbyt wiele kodu. Chciałem dowiedzieć się, jak postępować najpierw przed napisaniem lekcji. Byłbym bardzo wdzięczny, gdybyś mógł wskazać mi jakieś znane podejście do tego problemu. – hattenn