Jonsc1 Geschrieben 8. September 2006 Geschrieben 8. September 2006 Heyho... Habe eine Frage bzgl. eines Programms das ich momentan schreibe (n will): Wie bekomme ich es am besten hin das das Programm (Windowsprogramm, Hauptfenster ist ein Dialog aus einer Resource) nur alle paar Minuten mal was macht, zb. mit nem Internetserver kommuniziert... Mit ner Schleife komm ich da ja schlecht weiter, will nicht das meine Systemauslastung dauernd auf 100% ist Und das Programm soll sich ja trotz dieser Hintergrundaufgaben immer noch bedienen und steuern lassen... Hab auf diesem Gebiet noch nicht sehr viel Erfahrung, würde mich freuen wenn mir jemand helfen kann... lg Zitieren
Hexagon Geschrieben 8. September 2006 Geschrieben 8. September 2006 Moin, hm...ich nehme mal an es soll die MFC verwendet werden (Wegen Windowsprogramm und so...). Schau dir doch mal CWnd::SetTimer(...) und CWnd::OnTimer(...) an. Falls es doch in plain c++ sein soll, vergiss mein Posting! Zitieren
Jonsc1 Geschrieben 8. September 2006 Autor Geschrieben 8. September 2006 Nene, reines C++, ohne MFC... trotzdem danke für die Antwort! Zitieren
Klotzkopp Geschrieben 9. September 2006 Geschrieben 9. September 2006 Nene, reines C++ Wenn du mit "rein" Standard-C++ meinst, hast du Pech. Der Standard kennt weder Threads noch Prozesse, und enthält daher keine Warte- oder Synchronisationsmechanismen. Da du aber auch geschrieben hast Hauptfenster ist ein Dialog aus einer Resource, und der Standard auch keine Fenster kennt, meinst du mit "rein" WinAPI? Dann kannst du z.B. Sleep oder SetTimer benutzen, oder WaitForSingleObject, mit Timeout und einem Objekt, das nie signalisiert wird. Zitieren
Jonsc1 Geschrieben 9. September 2006 Autor Geschrieben 9. September 2006 Ja, meine natürlich Winapi... Hab ich das richtig verstanden, ich soll die Sache mit der Internetkommunikation in nen eigenen Tread legen den ich dann eventuell pausiere? (Hab noch nie was mit mehreren Treads gemacht...) Zitieren
Klotzkopp Geschrieben 9. September 2006 Geschrieben 9. September 2006 Hab ich das richtig verstanden, ich soll die Sache mit der Internetkommunikation in nen eigenen Tread legen den ich dann eventuell pausiere?Das wäre eine Möglichkeit. Die solltest du benutzen, falls diese "Internetkommunikation" länger als ein paar Sekundenbruchteile dauert. Denn wenn du keinen eigenen Thread dafür benutzt, sondern z.B. einen Timer, "hängt" dein Programm währenddessen. Eigentlich reagiert nur das UI nicht, aber das sieht für den Benutzer aus wie ein Programm, das sich aufgehängt hat. Und weil's eben kein Standard ist: Verschoben -> C++: Compiler, IDEs, APIs Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.