Thread funktioniert nicht richtig...
-
Hi ich habe einen Thread der eine Datei von A nach B kopiert...
mein Thread funktion üebergebe ich mein Dialog per this zeiger...
im Thread leite ich CFile objekt ab und rufe die methode SeekToEnd() auf allerdings funktioniert dann mein Thread nicht so....
ULONGLONG nBytes = MyFile.SeekToEnd();
Wenn ich diese Methode heraus nehme funktioniert das Kopieren...
Hat jemand eine Idee? was ich falsch mache?Vielen Dank im voraus!
T1c4L
-
Hi,
T1c4L schrieb:
im Thread leite ich CFile objekt ab
das glaube ich kaum :p
Naja, ich nehme mal an, dass du SeekToEnd benutzt um die Größe der Datei in Bytes herauszufinden.
Vielleicht hast du dannach das SeekToBegin vergessen?Grüße Rapha
-
yo,
ja das habe ich auch bemerkt...
der pointer ist ja dann auch am ende...zu meinem anderen problem...
Beim kopieren wollte ich ja noch son paar Werte aktualisieren im Dialog (wo auch der thread aufgerufen wird und der Dialog selbst denThread startet+sich selbst über this zeiger übergibt)...Dieser code bringt mein program zum abstürzen, ich weis allerdings nicht genau wieso...
CMyDlg* pDlg = (CMyDlg)pParam; // mein Dialog pDlg->m_MyVar = "String"; pDlg->UpdateData(FALSE);
vieleicht kannst du mir helfen :-)) vieleicht ist auch mein Ansatz für mein Vorhabensziel superfalsch, so den Dialog zu aktualisieren...
Note:
Ich habe auch nen ProgressBar wenn ich im Thread die StepIt() methode aufrufe wird der allerdings schon aktualisiert...
[/cpp]
pDlg->m_ProgressBar.StepIt();
[cpp]Grüße T1c4L
-
Wenn ich mich richtig erinnere, funktioniert UpdateData(...) in einem Thread generell nicht. Ich glaube, das stand auch irgendwo in den FAQ, finde ich aber gerade nicht. Und 100% sicher bin ich mir auch nicht, eher nur so 93,2%...
[edit]
Ich gehe doch noch auf 99,9% hoch:
http://www.c-plusplus.net/forum/viewtopic.php?t=63199&highlight=thread+updatedata
http://www.c-plusplus.net/forum/viewtopic.php?t=62390&highlight=thread+updatedata
http://www.c-plusplus.net/forum/viewtopic.php?t=55895&highlight=thread+updatedata
http://www.c-plusplus.net/forum/viewtopic.php?t=46697&highlight=thread+updatedata
http://www.c-plusplus.net/forum/viewtopic.php?t=46418&highlight=thread+updatedata
http://www.c-plusplus.net/forum/viewtopic.php?t=5099&highlight=thread+updatedata
http://www.c-plusplus.net/forum/viewtopic.php?t=3891&highlight=thread+updatedata
[/edit]
-
Nimm also die Methode CDialog::SetDlgItemText
Grüße Rapha
-
eine Message geschrieben die zujm Dialog geschickt wird, damit klappts gut, vielen dank