<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Timer in einem Thread]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich habe einen Timer erstellt, welcher im Sekundentakt läuft und erst mit Beenden meines Programmes beendet wird. Jetzt möchte ich diesen Timer in einem Thread ablaufen lassen.<br />
Das Problem ist, dass die StartTimer-Funktion als static deklariert sein muss, um den Thread zu starten, jedoch muss ich in der StartTimer-Funktion zusätzlich noch die SetTimer-Methode aufrufen.<br />
Nun bekomme ich immer die Fehlermeldung: &quot;Unzulässiger Aufruf einer Nichtstatischen Methode&quot;.<br />
Hier der Quellcode der StartTimer-Methode:<br />
C/C++ Code:</p>
<pre><code class="language-cpp">UINT_PTR CCNCProgrammView::StartTimer(LPVOID pParam)
{
    CNCProgrammViewCall *call = (CNCProgrammViewCall*)pParam;
    UINT_PTR TimerVal;
    TimerVal = SetTimer(ID_CLOCK_TIMER, 1000, NULL);
    return TimerVal;
}
</code></pre>
<p>Danke im Voraus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>mfg enne</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/154673/timer-in-einem-thread</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Jul 2026 06:34:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/154673.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 29 Jul 2006 12:50:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Timer in einem Thread on Sat, 29 Jul 2006 15:07:00 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich habe einen Timer erstellt, welcher im Sekundentakt läuft und erst mit Beenden meines Programmes beendet wird. Jetzt möchte ich diesen Timer in einem Thread ablaufen lassen.<br />
Das Problem ist, dass die StartTimer-Funktion als static deklariert sein muss, um den Thread zu starten, jedoch muss ich in der StartTimer-Funktion zusätzlich noch die SetTimer-Methode aufrufen.<br />
Nun bekomme ich immer die Fehlermeldung: &quot;Unzulässiger Aufruf einer Nichtstatischen Methode&quot;.<br />
Hier der Quellcode der StartTimer-Methode:<br />
C/C++ Code:</p>
<pre><code class="language-cpp">UINT_PTR CCNCProgrammView::StartTimer(LPVOID pParam)
{
    CNCProgrammViewCall *call = (CNCProgrammViewCall*)pParam;
    UINT_PTR TimerVal;
    TimerVal = SetTimer(ID_CLOCK_TIMER, 1000, NULL);
    return TimerVal;
}
</code></pre>
<p>Danke im Voraus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>mfg enne</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1106629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1106629</guid><dc:creator><![CDATA[enne87]]></dc:creator><pubDate>Sat, 29 Jul 2006 15:07:00 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Sun, 30 Jul 2006 14:26:29 GMT]]></title><description><![CDATA[<p>Ok, vielleicht ist das keine besonders gute Lösung. Das Problem ist, dass mein Programm total langsam wird, wenn nebenher noch ein Timer tickt. Gibts da irgendeine andere Möglichkeit? Wär echt ziemlich wichtig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107180</guid><dc:creator><![CDATA[enne87]]></dc:creator><pubDate>Sun, 30 Jul 2006 14:26:29 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Sun, 30 Jul 2006 16:13:17 GMT]]></title><description><![CDATA[<p>In einem Thread arbeitet man mit POINTERN ... d.h. Hol dir doch bsw. einfach mal das CWnd deiner View(dann dort auch auf WM_TIMER reagieren!)...</p>
<pre><code class="language-cpp">UINT_PTR CCNCProgrammView::StartTimer(LPVOID pParam)
{
    UINT_PTR nTimerVal = ((CCNCProgrammView*)(((CMainFrame*)(AfxGetMainWnd())-&gt;GetActiveView())-&gt;SetTimer(ID_CLOCK_TIMER, 1000, NULL);

    return nTimerVal;
}
</code></pre>
<p>So... Das ist aber unsinnig... du startest den Timer... und beendest damit den Thread <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Also kannst de es schon fast besser so machen:</p>
<pre><code class="language-cpp">UINT_PTR CCNCProgrammView::StartTimer(LPVOID pParam)
{
    static DWORD dwTime = ::GetTickCount();

    while (true)
    {
        if ((::GetTickCount() - dwTime) &gt; 1000)
        {
            dwTime = ::GetTickCount();
            // ... Hier machst du das was du sonnst im Timer gemacht hättest...
        }
    }

    return 0;
}
</code></pre>
<p>Das kann man dann auch noch verschönern, in dem man bsw. als Param nen Pointer auf das View übergibt. Dann fügst de der View ne boolische Membervariable hinzu, die du bevor du den Thread startest auf True setzt. (Am besten noch sowas wie ne public IsTimerRunning Funktion hinzufügen.) Dann anstelle von while (true) einfach while (dieVariable) nehmen... Wenn du den Thread dann beenden willst, gehst du einfach hin und setzt die Variable auf false.</p>
<p><strong>Referenzen</strong><br />
<a href="http://msdn2.microsoft.com/en-us/library/49313fdf.aspx" rel="nofollow">CWnd::SetTimer</a><br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/gettickcount.asp" rel="nofollow">GetTickCount</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107247</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 30 Jul 2006 16:13:17 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Sun, 30 Jul 2006 17:29:36 GMT]]></title><description><![CDATA[<p>Hey (D)Evil!</p>
<p>Erstmal danke für den tollen Tipp. Funktioniert bis jetzt gar nicht mal schlecht, jetzt hab ich nur noch das Problem, dass, sobald ich den Timer mittels eines Buttons starte, das Programm einfriert und ich es nur über den Task-Manager abwürgen kann. Liegt wahrscheinlich an der Endlosschleife.<br />
Hier der Code der aktuellen OnTimer:</p>
<pre><code class="language-cpp">UINT CtestappDlg::StartTimer()
{ 
static DWORD dwTime = ::GetTickCount();

    while (true)
    {
        if ((::GetTickCount() - dwTime) &gt; 1000)
        {
            dwTime = ::GetTickCount();
            // ... Hier machst du das was du sonnst im Timer gemacht hättest...
			if(m_seconds &lt; 59)
	        	  m_seconds++;
		        else if(m_seconds &gt;= 59)
				{
				  m_seconds =  0;
				if(m_minutes &lt; 59)
						m_minutes++;
					else if(m_minutes &gt;= 59)
						{
							m_minutes = 0;
						if(m_hours &lt; 23)
								m_hours++;
							else if(m_hours &gt;= 23)
								m_hours = 0;
						}
					}

	m_nTest.Format(_T(&quot;%02d:%02d:%02d&quot;), m_hours, m_minutes,m_seconds);
	UpdateData(FALSE);
		}
    }

    return 0; 
}
</code></pre>
<p>Sorry, wenn ich lästig bin, leider bin ich aber noch ein ziemlicher Anfänger was C++ angeht. Hab erst gestern gelernt, was Threads sind, deswegen tu ich mir noch ziemlich hart mit dieser ganzen Geschichte und bin deswegen für jeden noch so kleinen Tipp total dankbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107285</guid><dc:creator><![CDATA[enne87]]></dc:creator><pubDate>Sun, 30 Jul 2006 17:29:36 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Sun, 30 Jul 2006 17:44:58 GMT]]></title><description><![CDATA[<p>Pointer...</p>
<p>Du musst dir in deiner Klasse CtestappDlg noch einen Getter und Setter für m_seconds, m_minutes, m_houres anlegen...</p>
<pre><code class="language-cpp">UINT CtestappDlg::StartTimer(LPVOID lpParam)
{ 
    CtestappDlg* pDlg   = (CtestappDlg*)lpParam;
    static DWORD dwTime = ::GetTickCount();
    CString      strTime;

    while (true)
    {
        if ((::GetTickCount() - dwTime) &gt; 1000)
        {
            dwTime = ::GetTickCount();

            if (pDlg-&gt;GetSeconds() &lt; 59)
                  pDlg-&gt;SetSeconds(pDlg-&gt;GetSeconds() + 1);
            else if (pDlg-&gt;GetSeconds() &gt;= 59)
            {
                pDlg-&gt;SetSeconds(0);

                if (pDlg-&gt;GetMinutes() &lt; 59)
                        pDlg-&gt;SetMinutes(pDlg-&gt;GetMinutes() + 1);
                else if (pDlg-&gt;GetMinutes() &gt;= 59)
                {
                    pDlg-&gt;SetMinutes();

                    if (pDlg-&gt;GetHours() &lt; 23)
                        pDlg-&gt;SetHours(pDlg-&gt;GetHours() + 1);
                    else if (pDlg-&gt;GetHours() &gt;= 23)
                        pDlg-&gt;SetHours(0);
                }
            }

            strTime.Format(_T(&quot;%02d:%02d:%02d&quot;), pDlg-&gt;GetHours(), pDlg-&gt;GetMinutes(), pDlg-&gt;GetSeconds());
            pDlg-&gt;SetTime(strTime)
        }
    }

    return 0; 
}
</code></pre>
<p>Bei SetTime musst de als Parameter einfach CString&amp; nehmen und dann nicht vergessen UpdateData aufzurufen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107301</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 30 Jul 2006 17:44:58 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Sun, 30 Jul 2006 19:48:34 GMT]]></title><description><![CDATA[<p>Ok, für mein Textfeld hab ich eine Membervariable namens m_nTest angelegt. Jetzt hab ich geschrieben:</p>
<pre><code class="language-cpp">UINT CtestappDlg::StartTimer(LPVOID lpParam)
{
    CtestappDlg* pDlg   = (CtestappDlg*)lpParam;
    static DWORD dwTime = ::GetTickCount();
    CString strTime;

    while (true)
    {
        if ((::GetTickCount() - dwTime) &gt; 1000)
        {
            dwTime = ::GetTickCount();
             .
             .
             .
            }
pDlg-&gt;m_nTest.Format(_T(&quot;%02d:%02d:%02d&quot;), pDlg-&gt;GetHours(), pDlg-&gt;GetMinutes(), pDlg-&gt;GetSeconds());

pDlg-&gt;SetTime(strTime);
pDlg-&gt;UpdateData(FALSE);

        }
    }
    return 0;
}
</code></pre>
<p>Da bekomm ich aber eine Exception, muss ich das noch irgendwie anders schreiben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107362</guid><dc:creator><![CDATA[enne87]]></dc:creator><pubDate>Sun, 30 Jul 2006 19:48:34 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Sun, 30 Jul 2006 20:01:34 GMT]]></title><description><![CDATA[<p>Wofür rufst du SetTimer auf?</p>
<pre><code class="language-cpp">UINT CtestappDlg::StartTimer(LPVOID lpParam)
{
    CtestappDlg* pDlg   = (CtestappDlg*)lpParam;
    static DWORD dwTime = ::GetTickCount();
    CString strTime;

    while (true)
    {
        if ((::GetTickCount() - dwTime) &gt; 1000)
        {
            dwTime = ::GetTickCount();
             .
             .
            // DAS IST ANSTELLE VON SETTIMER! HIER MUSS DAS GEMACHT WERDEN WAS DER TIMER MACHEN SOLL!
        }

        strTime.Format(_T(&quot;%02d:%02d:%02d&quot;), pDlg-&gt;GetHours(), pDlg-&gt;GetMinutes(), pDlg-&gt;GetSeconds());
        pDlg-&gt;GetDlgItem(ID_DEINES_EDITFELDES)-&gt;SetWindowText(strTime);
    }

    return 0;
}
</code></pre>
<p>Wie Lautet die Fehlermeldung? Hast du beim starten des Threads als Parameter this als LPVOID gecastet angegeben? Hast du die Getter und Setter richtig implementiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107369</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 30 Jul 2006 20:01:34 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Sun, 30 Jul 2006 20:35:29 GMT]]></title><description><![CDATA[<p>Genau in der Zeile</p>
<pre><code class="language-cpp">pDlg-&gt;GetDlgItem(IDC_Timer)-&gt;SetWindowText(strTime);
</code></pre>
<p>bekomm ich die Meldung:</p>
<p>&quot;Debug Assertion Failed!&quot; Genaueres steht nicht da.</p>
<p>Ich rufe den Thread folgendermaßen auf:</p>
<pre><code class="language-cpp">m_pThread = AfxBeginThread(StartTimer,&amp;call, THREAD_PRIORITY_LOWEST)
</code></pre>
<p>wobei m_pThread ein Pointer von CWinThread ist.</p>
<p>Ich hoffe, dass die Getter- und Settermethoden richtig implementiert sind.<br />
Hier z.B. die Getter- Settermethoden für die Sekunden:</p>
<pre><code class="language-cpp">int CtestappDlg::GetSeconds()
{
	return  m_seconds;
}

void CtestappDlg::SetSeconds(int seconds)
{
	m_seconds = seconds;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1107378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107378</guid><dc:creator><![CDATA[enne87]]></dc:creator><pubDate>Sun, 30 Jul 2006 20:35:29 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Sun, 30 Jul 2006 21:19:34 GMT]]></title><description><![CDATA[<p>Getter und Setter sind richtig. Von welchem Type ist die variable call?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107390</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 30 Jul 2006 21:19:34 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Mon, 31 Jul 2006 11:11:25 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">testappDlgCall call;
</code></pre>
<p>testappDlgCall ist eine Struktur, die außerhalb der Klasse definiert wurde:</p>
<pre><code class="language-cpp">struct testappDlgCall {
   CtestappDlg *pDoc;
   HWND hWnd;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1107660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107660</guid><dc:creator><![CDATA[enne87]]></dc:creator><pubDate>Mon, 31 Jul 2006 11:11:25 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Mon, 31 Jul 2006 13:46:02 GMT]]></title><description><![CDATA[<p>Ne, es gibt eigentlich nur noch ein Problem und das ist folgende Codezeile:</p>
<pre><code class="language-cpp">pDlg-&gt;GetDlgItem(ID_DEINES_EDITFELDES)-&gt;SetWindowText(strTime);
</code></pre>
<p>Da bekomm ich eine Assertion...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107790</guid><dc:creator><![CDATA[enne87]]></dc:creator><pubDate>Mon, 31 Jul 2006 13:46:02 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Mon, 31 Jul 2006 17:46:45 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">m_pThread = AfxBeginThread(StartTimer, (LPVOID)*this, THREAD_PRIORITY_LOWEST)
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Du kannst das HWND vom Dlg Pointer nehmen...</p>
<p>Dann debugg mal...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107928</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Mon, 31 Jul 2006 17:46:45 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Mon, 31 Jul 2006 20:06:30 GMT]]></title><description><![CDATA[<p>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</p>
<pre><code class="language-cpp">CDataExchange dx(this, bSaveAndValidate);
</code></pre>
<p>eine Debug-Assertion.</p>
<p>Sry wenn ich langsam nerve, aber ich kriegs einfach net hin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108023</guid><dc:creator><![CDATA[enne87]]></dc:creator><pubDate>Mon, 31 Jul 2006 20:06:30 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Mon, 31 Jul 2006 20:18:10 GMT]]></title><description><![CDATA[<p>Wenn dann könntest de nur pDlg-&gt;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...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108032</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Mon, 31 Jul 2006 20:18:10 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Mon, 31 Jul 2006 21:33:56 GMT]]></title><description><![CDATA[<p>Super, nach 3 Tagen tickt mein Timer endlich, vielen, vielen Dank (D)Evil, ohne dich hätt ichs net geschafft <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Jetzt muss ich meinen Thread nur noch korrekt abwürgen und die Sache ist perfekt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Mit freundlichen Grüßen</p>
<p>enne</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108071</guid><dc:creator><![CDATA[enne87]]></dc:creator><pubDate>Mon, 31 Jul 2006 21:33:56 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Mon, 31 Jul 2006 23:34:22 GMT]]></title><description><![CDATA[<p>Ah, und weil es mir gerade einfällt, gibts eine Methode mit der man erfahren kann, ob ein Thread gerade läuft?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108112</guid><dc:creator><![CDATA[enne87]]></dc:creator><pubDate>Mon, 31 Jul 2006 23:34:22 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Tue, 01 Aug 2006 05:34:50 GMT]]></title><description><![CDATA[<p>UpdateData kann man in einem Thread nicht aufrufen.</p>
<p>Zu deiner Frage:<br />
GetExitCodeThread</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108150</guid><dc:creator><![CDATA[Unix-Tom]]></dc:creator><pubDate>Tue, 01 Aug 2006 05:34:50 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Tue, 01 Aug 2006 22:17:52 GMT]]></title><description><![CDATA[<p>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:</p>
<pre><code class="language-cpp">void CCNCProgrammView::OnClose()
{

    m_bWantExit = true;
	m_pThread-&gt;m_bAutoDelete = false;
	::WaitForSingleObject(m_pThread-&gt;m_hThread, 2000);
	::AfxEndThread(0, TRUE);	
}
</code></pre>
<p>Klappt aber auch nicht ganz, da mein Timer nach 2 Sekunden weiterläuft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108880</guid><dc:creator><![CDATA[enne87]]></dc:creator><pubDate>Tue, 01 Aug 2006 22:17:52 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Tue, 01 Aug 2006 22:30:13 GMT]]></title><description><![CDATA[<p>Darf ich fragen wieso es hier kein CEvent geben soll?</p>
<pre><code class="language-cpp">#include &lt;afxmt.h&gt;
</code></pre>
<p>Und du hast die CEvent-Klasse wieder.</p>
<p>Oder habe ich was missverstanden?</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108882</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 01 Aug 2006 22:30:13 GMT</pubDate></item><item><title><![CDATA[Reply to Timer in einem Thread on Tue, 01 Aug 2006 23:28:11 GMT]]></title><description><![CDATA[<p>Ok, sry, du hattest recht, trotzdem hab ich immer noch das Problem, das ich nicht weiß, wie ich einen Thread mittels &quot;Abbrechen&quot; - Button zum Stillstand bringen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108903</guid><dc:creator><![CDATA[enne87]]></dc:creator><pubDate>Tue, 01 Aug 2006 23:28:11 GMT</pubDate></item></channel></rss>