MSVC Gui absturz durch whileloop



  • Hallo ich habe mit MSVC eine neue Forms App erstellt...
    Dann Desingnt und jetzt habe ich die stelle wo ich entscheiden soll was er nach Buttondruck machen soll...

    Da ich gerne eine While schleife ausführen möchte hab ich es so gelöst :

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    				 setdebugg();
    				 do
    				 {
    				 getbobber();
    				 }while(1==1);
    			 }
    };
    

    Nun stürtz die GUI ab aber die exe wird weiter ausgeführt und macht weiter die Funktionen nun ist meine frage wie bekomme ich es hin das die GUI auch bei einer Whileloop nicht unterbrochen wird ??



  • hamburger schrieb:

    Hallo ich habe mit MSVC eine neue Forms App erstellt...
    ... wie bekomme ich es hin das die GUI auch bei einer Whileloop nicht unterbrochen wird ??

    Du schreibst hier kein MFC-Code sondern hast eine WinForms-App mit C++/CLI erstellt.

    Deine GUI ist nicht abgestürzt sondern erhält, je nachdem was getbobber() macht nie die Möglichkeit sich neu zu zeichnen. Außerdem solltest Du Deiner Schleife auch eine Abbruchbedingung spendieren 😉

    Letzteres z.B. durch einen Klassenmember der in der Funktion gesetzt wird und in der Schleife abgefragt wird oder auch gleich als Rückgabewert der Funktion?!

    Gruß
    foodax



  • Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Du musst einen eigenen Thread erstelleb z.B. mittels "BackgroundWorker"
    http://msdn.microsoft.com/de-de/library/c8dcext2



  • Du musst Funktionen welche viel Zeit benötigen in einem eigenen Tread ausführen. Diese arbeit erledigt dir der BackgroundWorker.
    Dieser hatt auch abbruch und Process Ereignisse.
    Gibt Beispiele über Threading...

    Gruß


Anmelden zum Antworten