Mieszanie sie obiektów

0

Witam na wstępie powiem, iż nie jestem zawodowym programistą a z zamiłowania tworze jakieś programy na własny użytek. To tez robię dużo błędów optymalizacyjnych, gramatycznych itd..

Problem jest taki iż pisałem sobie program do pobierania danych z pulpitu i odpowiedniego ich przetwarzania. No i działa, ale niestety wszystko mam wpakowane w konstruktorze (30 tys linijek kodu) a muszę go wywoływać ponad 100 razy, gdyż jak raz pobiorę dane z pulpitu otwieram nowy plik/dane i heja dalej to samo.
w tym celu utworzyłem poniższą pętlę

private void button1_Click(object sender, EventArgs e)
        {
            DesktopColorForm brum = new DesktopColorForm(txtsCode.Text, true, 0);
            for (int i = 0; i < 190; i++)
            {
                int milliseconds = 220;
                System.Threading.Thread.Sleep(milliseconds);
                DesktopColorForm round = new DesktopColorForm(txtsCode.Text + i, false, i);
            }
        }

Problem jest taki, że następny konstruktor zaczął jakby wykonywać się wcześniej zanim zakończył się poprzedni (bądź nie nadpisał danych ale to mało prawdopodobne). Np DesktopColorForm z i = 5 ma część danych z konstruktora i = 4. W tym calu dodałem
int milliseconds = 220;
System.Threading.Thread.Sleep(milliseconds);
aby tamten biedak mógł się zakończyć i poprawa jest rewelacyjna częstotliwość takiego błędu spadała o 80-90% pewnie aby dojść do 100% przydałoby się jeszcze zwiększyć czas czekania, ale wtedy pobranie danych trwałoby masakrycznie długo.

Z góry wielkie dzięki za pomoc w rozwiązaniu problemu, albo chociaż sugestię, gdzie szukać rozwiązania. pozdrawiam....

0

Polecam rzucenie okiem na klase Task;) W szczególności takie metody jak WaitAll, WaitAny, ContinueWith itd.
Ewentualnie Parallel.For tez moze sie okazac calkiem przydatne dla twojego problemu

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