Kiedy korzystać z eventów, a kiedy ze znanych obiektowi metod

0

Cześć,

nie wiem, w jaki sposób zaprojektować rozwiązanie problemu czytania pliku.

Mam swoją główną formę, która uruchamia kolejną (pokazuje ją) jeśli został wciśnięty określony button.
Ta moja druga forma inicjalizuje klasę czytającą plik, przy okazji tworząc jeszcze jedną formę z ProgressBarem, który aktualizuje się w miarę czytania pliku (klasa czytająca udostępnia pewne eventy, umożliwiające określenie tego, ile jeszcze jest do wczytania).

I teraz mam problem - w jaki sposób powiadomić podstawową formę, że ściąganie pliku się zakończyło?
Rozważam dwie opcje:

  • w konstruktorze drugiej formy (tej uruchamiającej czytanie) dodać argument (GłównaForma), i następnie wywołać metodę, którą GłównaForma udostępnia (np., jeśli wczytany plik to linie tekstu (tablica string[]), wykonałbym to po prostu głównaForma.Metoda(wczytane_linie)).
  • udostępnić w drugiej formie event, np. OnReadingFinished, który odpalałbym, gdy plik w całości został wczytany.
    Główna forma podpinałaby się pod ten event i czekała na niego, a w argumentach delegata (eventu) dostałaby tablicę string[]

Czytałem troche na ten temat i eventy pozwalają na multicasting, ale ja wiem, że nie będę potrzebował więcej niż jednego oznajmnienia, że plik został poprawnie wczytany do końca. Co jest lepsze?

Pozdrawiam ;]

0

Ja wybrałbym rozwiązanie z eventem i główna forma by go łapała i obsługiwała. Dzięki temu masz niezależność formy2 od formy głównej, czyli forma2 + klasa czytająca plik + progressbar jest niezależne i teoretycznie możliwe do wykorzystania w innym miejscu w kodzie, gdzie również miałbyś odczytać plik i potrzebowałbyś progressbara.
Nie wiem tylko do czego służy ta forma2? Robi coś jeszcze oprócz uruchomienia klasy czytajacej i tej formy z progressbarem?
Pozdrawiam
Łukasz Gawron

1 użytkowników online, w tym zalogowanych: 0, gości: 1