Timer in einem Thread
-
Ne, es gibt eigentlich nur noch ein Problem und das ist folgende Codezeile:
pDlg->GetDlgItem(ID_DEINES_EDITFELDES)->SetWindowText(strTime);Da bekomm ich eine Assertion...
-
m_pThread = AfxBeginThread(StartTimer, (LPVOID)*this, THREAD_PRIORITY_LOWEST)
Du kannst das HWND vom Dlg Pointer nehmen...Dann debugg mal...
-
Hm, vielen dank erstmal für die tolle Hilfe (D) Evil, aber mit UpdateData hab ich immernoch ziemliche Probleme. Sobald ich UpdateData in der StartTimer aufrufe, bekomm ich beim Debuggen in der Zeile
CDataExchange dx(this, bSaveAndValidate);eine Debug-Assertion.
Sry wenn ich langsam nerve, aber ich kriegs einfach net hin.
-
Wenn dann könntest de nur pDlg->UpdateData aufrufen... wobei ich net weiß ob die public ist, was das wiederrum nciht machbar amchen würde... aber UpdateData brauchst de eh net wenn de das mit setwindowtext usw machst...
-
Super, nach 3 Tagen tickt mein Timer endlich, vielen, vielen Dank (D)Evil, ohne dich hätt ichs net geschafft

Jetzt muss ich meinen Thread nur noch korrekt abwürgen und die Sache ist perfekt
Mit freundlichen Grüßen
enne
-
Ah, und weil es mir gerade einfällt, gibts eine Methode mit der man erfahren kann, ob ein Thread gerade läuft?
-
UpdateData kann man in einem Thread nicht aufrufen.
Zu deiner Frage:
GetExitCodeThread
-
Hi, ich hab jetzt noch ein kleines Problem. Irgendwie funktioniert das nicht ganz mit GetExitCodeThread. Ich lass meinen Thread nun in einer SDI-Anwendung laufen, welche von CFormView abgeleitet wurde. Jedoch gibts hier die Klasse CEvent nicht, was die Sache noch etwas erschwert. Ich habs mal so probiert:
void CCNCProgrammView::OnClose() { m_bWantExit = true; m_pThread->m_bAutoDelete = false; ::WaitForSingleObject(m_pThread->m_hThread, 2000); ::AfxEndThread(0, TRUE); }Klappt aber auch nicht ganz, da mein Timer nach 2 Sekunden weiterläuft.
-
Darf ich fragen wieso es hier kein CEvent geben soll?
#include <afxmt.h>Und du hast die CEvent-Klasse wieder.
Oder habe ich was missverstanden?
Grüssli
-
Ok, sry, du hattest recht, trotzdem hab ich immer noch das Problem, das ich nicht weiß, wie ich einen Thread mittels "Abbrechen" - Button zum Stillstand bringen kann.