Hallo,
ich bin grad dabei eine Art Datei Übertragungsprogramm zu programmieren mithilfe von Threads. Die Dateiübertragung funktioniert soweit sogut, jedoch ist es mir noch nicht gelungen den Fortschritt im Fortschrittsbalken wiederzugeben:
Das ist meine Versenderoutine. Um den Fortschritt anzuzeigen erstelle ich einen neuen Thread der den Fortschrittsbalken berechnen soll:
updatedata ist eine Struktur in der der jetzige Standpunkt der übertragung und die gesamtlänge der Übertragung gespeichert wir, sodass ich dann daraus den jeweiligen prozentteil berechnen kann.
Mein Problem ist jetzt, dass ich den Fortschritt nicht während der Übertragung beobachten kann sondern erst hinterher, somit springt der Balken nach der Übertragung sofort auf 100% über.
Wie könnte ich das Problem beheben?
Gruß
cesupa
ich bin grad dabei eine Art Datei Übertragungsprogramm zu programmieren mithilfe von Threads. Die Dateiübertragung funktioniert soweit sogut, jedoch ist es mir noch nicht gelungen den Fortschritt im Fortschrittsbalken wiederzugeben:
Code:
while(s.read(buf,readin))
{
Sleep(10);
teil=send(client,buf,readin,0);
u.teil+=teil;
hThread[0]=CreateThread(NULL,0,update_gauge,(LPVOID)&u,0,&ThreadID);
WaitForMultipleObjects(1,hThread,true,INFINITE);
}
Code:
DWORD WINAPI update_gauge(LPVOID v)
{
updatedata u;
u=*(updatedata*)v;
WxGauge1->SetValue((u.teil/u.len)*100);
WxGauge1->Refresh();
return 0;
}
Mein Problem ist jetzt, dass ich den Fortschritt nicht während der Übertragung beobachten kann sondern erst hinterher, somit springt der Balken nach der Übertragung sofort auf 100% über.

Wie könnte ich das Problem beheben?
Gruß
cesupa