Optymalizacja [?] programu

0

Cześć. Dopiero zaczynam z C# i mam problem. Napisałem program, lecz gdy rozpoczyna swoje działanie nie daje się go zamknąć i nie reaguje na klikanie guzików itp.
Kodzik:

 
public void main()
        {
            blabla;
                if (blabla > albalb)
                {
                    zjedz(kanapkę);
                    main();

                }
                else
                {
                    wypij(kakao)
                    main();
                }

                    
                

Program ma budowę zbliżoną do tego powyżej. Sprawdza warunek, następnie je albo pije i zaczyna od nowa. Próbowałem robić to z pętlami for, while i nadal to samo. Pomoże mi ktoś zoptymalizować to?

0

Podaj jakiś sensowny kod.

Z tego wynika, że rekurencyjnie wywołujesz jakąś metodę bez warunku zakończenia na głównym wątku (UI)? Dlaczego mamy się domyślać co ten kod ma w ogóle robić?

0

Masz po prostu nieskończoną rekurencje. Jeżeli zaczynasz zabawę z jakimś językiem to nie pchaj się od razu w GUI.

0

Dobra kod tym razem z pętlą dokładniej wygląda tak:

 
public void main()
        {
            
                
                for (int i = 0; i < 25; i = i + 1)
                {
                int bt = 5000;
                webClient.DownloadFile(####);
                long rozmiar = info.Length;
                if (rozmiar < bt)
                {
                    File.Delete(path);
                    continue;

                }
                else
                {
                    continue;


                }




            }
0

To aplikacja konsolowa czy Windows Forms? W drugim wypadku użyj BackgroundWorker albo ręcznie utwórz nowy wątek.
Poprzez wywoływanie DownloadFile na czas pobrania pliku w głównym wątku programu blokujesz aktualizację interfejsu użytkownika.

Nie musisz stosować continue na samym końcu, bez tego pętla będzie wciąż działać.

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