okno postępu

0

witam
mam sobie program, który pobiera dane z pliku tekstowego, koduje i następnie zapisuje do drugiego pliku. chcę do niego dorobić okno postępu i teraz mam pytanie jak powinno się to zrobić. czy przenosić operacje odczytu/kodowania/zapisu do kodu okienka postępu, czy wywoływać okno w osobnym wątku a kod odczytu/dokowania/zapisu pozostawić w oknie main programu?
mam nadzieję, że w miarę jasno to opisałem

0

powinno sie kod zapisujacy przeniesc do osobnego watku z ktorego (poprzez synchronizacje) aktualizowane bedzie okno postepu, to natomiast bedzie przyslaniac okno glowne (chyba, ze ma byc nie przeszkadzajace)

Haslo: BackgroundWorker + progressbar

0

ok. czyli jeśli w tej chwili bazuję na kilku kontrolkach okna macierzystego, to muszę zrobic te kontrolki dostępne dla okna potomnego lub zrobić sobie klasę z danymi i tam przekopiować wartości danych kontrolek? czy źle zrozumiałem? albo może jeszcze inaczej? (okno ma być modalne chcę tylko zwizualizować postęp i jego prędkość) BackgroundWorker i ProgressBar nie są mi obce, chce tylko wiedzieć jak to powinno wyglądać powiedzmy w profesjonalnej aplikacji żeby nie robić niepotrzebnego misz-maszu no i nauczyć się porządnego programowania :)

0

Ja to bym widzial tak

Watek (obliczenia) w BW i tam odwolania do aktualizacji progressbara.

Nie wiem po co udostepniac kontrolki do innej formy ? To na pewno zla metoda. Mozna zbudowac klase zwiazana z obliczeniami/zapisem czy czym tam chcesz do ktorej podaje sie parametry z kontrolek (te tez mozna przekazac w BW na start). Tak wiec nigdzie nie ma potrzeby udostepniac kontrolek.

Moze zagmatwane, przedstaw jakis fragment to pozwoli latwiej sie odniesc do tego co masz moze opisz dokladniej w czym problem.

0

Nie koniecznie trzeba tworzyć nowy wątek. Można podczas obliczeń wywoływać
Application.DoEvents();
Rozwiązanie proste i skuteczne. Często lepsze od osobnego wątku.

0

ok. rozumiem. tworzę klasę, w której znajdują się odpowiednie dane z kontrolek main window i bazuję na tym w nowym oknie. dzięki za pomoc. kodu jest kilkaset linii i nie chcę zaśmiecać forum. chodziło mi o to jak robią tego typu rzeczy ludzie, robiący to na codzień.

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