for schleife - keine rückmeldung
lima-city → Forum → Programmiersprachen → C/C++ und D
abbrechen
abort
anspruch
aufgabe
besten schleifen
code
eiskalte wasser
finger
gefunden http
kleinen tip
kompliment
kurzfassung
nachricht
parallel laufen
programm
schleife
umweg
url
verarbeitung
verwenden
-
naja, wenn ich eine for schleife laufen lasse die etwas länger was macht, kommt immer Keine Rückmeldung und nix geht mehr... in VB gibts ja sowas wie Do Events, damit man die for schleife noch abbrechen kann oder so, wie mach ich sowas in c++? das programm nimmt ja eigentlich nix mehr von mir an wenns auf keine rückmeldung ist ;/ und wenn ich abbrechen will bei der schleife kann gehts nicht da es auf keine rückmeldung ist... ich wäre froh wenn ich nicht irgendwie auf nen timer wechseln müsste anstatt schleife zu verwenden, umwege finde ich schon irgendwie, aber ich wills bei ner for schleife machen weil ich einfach am liebsten mit denen arbeite und es einfach die besten schleifen sind ;)...
Kurzfassung: wie verhindere ich "Keine Rückmeldung" bei ner forschleife in c++(oder auch C)
Beitrag zuletzt geändert: 10.2.2009 23:02:58 von kiruku -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du musst sogenannte Threads verwenden, um Aufgaben auszuführen, die etwas mehr Zeit in Anspruch nehmen.So kann der Benutzer weiterhin mit dem Programm arbeiten, während die Aufgabe noch ausgeführt wird.
Beispiel:
http://www.linuxselfhelp.com/HOWTO/C++Programming-HOWTO-18.html
Beitrag zuletzt geändert: 10.2.2009 23:06:53 von cbhp -
gibts auch ein gutes tutorial dafür in deutsch?? ich verstehs zwar in englisch aber ich habe tutorials viel schneller durch und verstanden wenns in deutsch ist... mach nicht so gerne englische tuts durch ;/
EDIT: hat sich erledigt... hab ein gutes tut gefunden
http://www.codeworx.org/cpp_tuts_1_5.php
Beitrag zuletzt geändert: 12.2.2009 19:34:04 von kiruku -
Also ich will dir nur einen kleinen Tip geben. Als Anfänger sollte man die Finger von Threads lassen. Man kriegt sehr schnell Deadlocks rein und die App geht nicht ohne, dass man es merkt. Ich würde empfelen erst mal leichtere Dinge auszuprobieren, wie Dateien oder sowas um richtig in C reinzukommen und das ganze kennenzuleren. Aber wenn du mutig bist schmeist du dich gleich ins eiskalte Wasser. ;)
-
anfänger ? -_- danke für das kompliment allerdings programmiere ich schon etwas länger, aber leider wurde nie irgendwo etwas gesagt was threads überhaupt sind es war immer nur die rede davon.
ich hab schon das ganze galileocomputing tut durch, bin durch winapi durch und sockets hab ich jetz auch im griff, irgendwann sollte ich doch mal mit threads anfangen oder?
Beitrag zuletzt geändert: 13.2.2009 16:07:39 von kiruku -
Ich würde das nicht zwangsläufig über Threads lösen. Ich mach' sowas über ein zusätzlichesAbbruchkriterium in der Schleife, und innerhalb der Schleife muß man die Verarbeitung von Messages zulassen. Da ich leider kein C kann, dann ich dir nur das Delphi-Gegenstück sagen. Aber cbhp weiß dann das sicher auf "C"isch !
Hier der Pseudo-code:
Variable Abort als Boolean (heiß glaub ich bool in C) Abort auf False setzen Schleife Code innerhalb der Schleife Nachrichten abarbeiten //eben Application.ProcessMessages in Delphi Schleife abbrechen, wenn Abort wahr ist, oder die Schleife sowieso fertig ist
Wenn jetzt jemand eine Schaltfläche drückt, in deren Event-Code du Abort auf True setzt, wird die Schleife abgebrochen! -
dsa prob ist, das mans nur über threads lösen kann weil das was du gerade gesagt hast nicht gehen KANN, das programm versucht mit der 1 forschleife immer weiterzumachen und weiterzumachen, wenn du nen hotkey drückst oder so, nimmts den erst an wenn die for schleife fertig ist, weil wie schon gesagt, keine 2 dnge parallel laufen können, dies ist nur mit threads möglich....in VB gehts mit Do Events, aber das scheint ein befehl zu sein der die for schleife irgendwie in nen thread bringt...
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage