<?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[Thread, Sleep und Programm beenden]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte einen Thread realisieren, der eine Aktion ausführt und sich dann schlafen legt. Die Sleep-Zeit kann vom Benutzer eingestellt werden und kann durchaus einige Minuten betragen. Das ganze läuft als while-Schleife:</p>
<pre><code>UINT CApplication::Thread(LPVOID lParam)
{
    bool *bContinue = (bool*)lParam;
    while (*bContinue)
    {
        //Aktion... 
        ::Sleep(10000);
    }
    return 0;
}
</code></pre>
<p>Wird nun das Programm beendet, sorgt folgender Aufruf dafür, dass der Thread ordnungsgemäß beendet wird:</p>
<pre><code>bContinue = false;
HANDLE hThread = m_pMyThread-&gt;m_hThread;
::WaitForSingleObject(hThread, INFINITE);
</code></pre>
<p>Das Problem ist, dass das Beenden nun sehr lange dauert, je nach eingestellter sleep-Zeit und wieviel von dieser schon abgelaufen ist.</p>
<p>Eine mögliche Lösung wäre die Realisierung von zwei Sleep-Aufrufen, um öfter nachzuschauen, ob bContinue noch true ist. Das Problem ist hierbei, dass die tatsächliche Zeit nicht mehr der eingestellten entspricht bei starker Systemauslastung, oder?</p>
<p>Welche Möglichkeiten gibt es?</p>
<p>Viele Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/83646/thread-sleep-und-programm-beenden</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 08:06:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/83646.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Aug 2004 10:24:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Thread, Sleep und Programm beenden on Mon, 23 Aug 2004 10:24:18 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte einen Thread realisieren, der eine Aktion ausführt und sich dann schlafen legt. Die Sleep-Zeit kann vom Benutzer eingestellt werden und kann durchaus einige Minuten betragen. Das ganze läuft als while-Schleife:</p>
<pre><code>UINT CApplication::Thread(LPVOID lParam)
{
    bool *bContinue = (bool*)lParam;
    while (*bContinue)
    {
        //Aktion... 
        ::Sleep(10000);
    }
    return 0;
}
</code></pre>
<p>Wird nun das Programm beendet, sorgt folgender Aufruf dafür, dass der Thread ordnungsgemäß beendet wird:</p>
<pre><code>bContinue = false;
HANDLE hThread = m_pMyThread-&gt;m_hThread;
::WaitForSingleObject(hThread, INFINITE);
</code></pre>
<p>Das Problem ist, dass das Beenden nun sehr lange dauert, je nach eingestellter sleep-Zeit und wieviel von dieser schon abgelaufen ist.</p>
<p>Eine mögliche Lösung wäre die Realisierung von zwei Sleep-Aufrufen, um öfter nachzuschauen, ob bContinue noch true ist. Das Problem ist hierbei, dass die tatsächliche Zeit nicht mehr der eingestellten entspricht bei starker Systemauslastung, oder?</p>
<p>Welche Möglichkeiten gibt es?</p>
<p>Viele Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/588949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/588949</guid><dc:creator><![CDATA[zaphod11th]]></dc:creator><pubDate>Mon, 23 Aug 2004 10:24:18 GMT</pubDate></item><item><title><![CDATA[Reply to Thread, Sleep und Programm beenden on Mon, 23 Aug 2004 10:26:58 GMT]]></title><description><![CDATA[<p>du könntest 'SleepEx()' benutzen. das kann man mittendrin abbrechen.<br />
guckst du: <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/sleepex.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/sleepex.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/588952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/588952</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Mon, 23 Aug 2004 10:26:58 GMT</pubDate></item><item><title><![CDATA[Reply to Thread, Sleep und Programm beenden on Tue, 24 Aug 2004 06:59:46 GMT]]></title><description><![CDATA[<p>Ah, vielen Dank. Genau so etwas hatte ich gesucht.</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/589678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/589678</guid><dc:creator><![CDATA[zaphod11th]]></dc:creator><pubDate>Tue, 24 Aug 2004 06:59:46 GMT</pubDate></item></channel></rss>