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 ;]