einfaches thread
-
Dann startest du wohl deinen Extra-Thread bevor der Dialog schon richtige zustande kam. Solche Probleme gilt es halt zu lösen wenn man Threads benutzt ... .
-
was soll ich jetzt machen
-
Entweder doch den Timer versuchen *gg* oder du musst entsprechende Kontrollstrukturen einführen. Irgendwie kann man sowas z.B. mit CEvent steuern. Habe ich aber selber noch nicht benutzt. Musst dich also mal schlau machen wie die funktionieren.
-
also danke pelleeon.
ich denke ich schalte auf andrem thema.....web server anmelden .
muß paar sachen testen..
-
updatedata kann man nicht in einem thread aufrufen.
du musst aus dem thread direkt in das control schreiben.
-
Was man alles umgehen könnte, wenn man KEINEN Thread hier benutzt ... .
Wozu? Er will keine Berechnung die 10 min dauert, er will einfach das Fenster ein Stück verschieben. Da reicht der Timer. Und in OnTimer kann er dann auch bequem sein UpdateData aufrufen.
-
ich möchte daß jeder schritt im thread im dialog beschrieben durch ein variable heisst dokdok.
-
zum beispiel ich will in der mitte der thread auf dem dialog zeigen
"Prozess ist in der mitte".
dann brauche ich variable übergabe
-
Es ist egal was er will. Wenn er schon Threads verwenden muss/soll dann gleich richtig.
Es beginnt mit einer Funktion welche die Nachrichtenschleife blockiert. Bei einem Zähler mag ein Timer reichen. Du kannst aber nicht wissen was er noch einbaut. Vieleicht möchte er auch eine Buttonklick und nicht nur das Fenster verschieben (was ja das gleiche Problem ist (keine Nachrichten))
Um weitere Fragen in Zukunft zu vermeiden (wenn er z.B. dann doch 10 min Berechnen will) soll er lernen warum das mit den Threads so ist.
@docdoc.
Schau mal in die FAQ. Da habe ich eine Möglichkeit aufgezeigt einer Klasse von CWinthread einen this-zeiger auf den Dialog zu übergeben. Mit diesem kannst du dann im Dialog machen was du willst. (Außer UpdateData)
-
zu pellaeon:
mit dem AfxBeginThread habe ich es gestern geschaft daß ich auf dem Fenster zu greifen wärend des prozesses.
heute will ich mein dialog ubdaten mit welchem zustand ist mein thread oder mein prozess in der moment.z.B. wenn koppierst Dateien ..scheint auf dem dialog mit welchen Datei ist er jetzt beschäftigt.
zu timer habe ich ein tolles beispiel von sams .
ich werde s noch mal testen wenn ich die zeit dazu habe
-
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39041.html
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39101.html
-
Das ist ja die Frage: muss er Threads verwenden oder nicht?
Ich versuche die zu umgehen, wenn es nicht sein muss. Nun muss er halt selber entscheiden, ob der Timer reicht oder nicht. Ursprünglich hat er gesagt, man soll das Fenster nur schließen können, sonst nichts. Da wäre also nichts mit Buttons.Falls mehr hinzukommt hast du natürlich recht, dann wirds kritisch vom Zeitablauf.
Wenn er allerdings direkt in die Membervariablen schreibt, muss er aufpassen, dass nicht irgendwie Mehrfachzugriff möglich ist(vor allem nicht lesen und schreiben gleichzeitig ...) aus bekannten Gründen, usw was halt alles dazu gehört bei Threads.
Hm er könnte allerdings probieren nicht direkt den Dialog zu beeinflussen, sondern User-Nachrichten zu schicken. Thread informiert per Nachricht den Dialog, dass er was machen soll. So könnte er umgehen, direkt auf Variablen des Dialogs zugreifen zu müssen.
-
ummm..viel zeug zum nachlesen und probieren.
ich muß mal testen also bis dann.. denke heute ich alles für mich
bis montag denn