Thread
-
Hi!
Wie kann ich mit der MFC einen Thread starten, code ausführen und wieder anhalten?
-
-
In deinem Dlg.(Test)
UINT CThreadTestDlg::thrFunction1(LPVOID pParam) { CThreadTestDlg* pDlg = (CThreadTestDlg*) pParam; pDlg->thrRun1(); return 0; } void CThreadTestDlg::thrRun1() { while (m_Flag) { // Hier dein Code einfügen } }Den Thread Startest Du mit:
void CTestDlg::OnButton() // Bsp. Button drücken Thread Startet { m_Flag = 1; CWinThread* pThread1 = AfxBeginThread (thrFunction1, this); }In deiner Dlg.h
// Konstruktion public: void thrRun1(); static UINT thrFunction1 (LPVOID pParam); private: int m_Flag;
-
siehe dazu auch eventuell MDSN WaitForSingleObject und die Klasse CEvent !
mit diesen sachen iss es relativ einfach möglich Threas zu starten bzw. unterbrechen.happy coding !
-
Vielen Dank, hat soweit geklappt. Wie kann ich den Thread wieder beenden?
-
Ernsti hat bereits gute Tipse (<- mehrzahl von Tip) gegeben.
Mit Wait4SingleObject und einer Instanz von CEnvent (Methode SetEvent)
ist das einfach zu machen.
Ich glaube in der Faq war auch mal ein brauchbarer Beitrag so wegen Threads.
Vielleicht mal bei Henkes nachsehen, oder auch mal das Microsoft Developer Network durchforsten.
-
Also jungs, ich habs immernoch nicht hinbekommen.
kann nicht jemand bitte den code posten, der den thread zu diesem beispiel beendet? währe sehr dankbar.
MfG GeForce87
-
m_Flag 0 setzen, damit wird die while-Schleife und der Thread beendet.