<?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 ohne Sleep()?]]></title><description><![CDATA[<p>Einen schönen Abend an alle <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="🙂"
    /> ,<br />
Ich habe mir ein kleines Programm geschrieben welches zur Erinnerung für mich dienen <a href="http://soll.Es" rel="nofollow">soll.Es</a> wartet bis eine vorher eingegebene Zeit vergangen ist und wenn diese Zeit abgelaufen ist gibt er mir solange ein Beep() aus bis ich stop in die Konsole eingebe.<br />
Nun zur Frage ich würde gerne eine Funktion einbauen um mir die Aktuell vergangene Zeit ausgeben lassen zu können.Das ganze funktioniert dann mit Sleep() auch nichtmehr soweit ich denke ,deshalb frage ich mich wie man das ganze anders gestalten könnte ,damit ich mir auch die aktuell vergangene Zeit anzeigen lassen kann.Hier mein bisheriger Code falls es jmd interessiert <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>
<pre><code>#include &lt;iostream&gt;
#define WIN32_LEAN_AND_MEAN
#include &lt;Windows.h&gt;
#include &lt;String&gt;
using std::cout;
using std::cin;
using std::string;

DWORD WINAPI ThreadFunc( int &amp;param )
{

	while (param == 0)
	{
	Beep(3000,3000);
	Sleep(3000);
	}
	std::cout &lt;&lt; &quot;thread wurde gestoppt&quot;;
	return 0;
}

int main ()
{   unsigned long time = 0;
	cout &lt;&lt; &quot;Wielange soll die Stoppuhr laufen?(in Minuten)\n&quot;;
    cin &gt;&gt; time;
	time = time*60000;
	cout &lt;&lt; &quot;Sie werden nun benachrichtigt sobald die Zeit abgelaufen ist\n&quot;;
	Sleep(time);
	cout &lt;&lt; &quot;Geben sie stop in die Konsole ein um das Programm zu beenden\n&quot;; 

	int iCondition = 0;
	DWORD dwThreadID = 0;

	HANDLE hThread = 0;
	hThread = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)&amp;ThreadFunc, &amp;iCondition, 0, &amp;dwThreadID);

	if (!hThread || !dwThreadID)
		return 1;  

	string abbruch;
	cin &gt;&gt; abbruch;

	if (abbruch == &quot;stop&quot;)
	{   iCondition = 1;
	    WaitForSingleObject(hThread, INFINITE);
	    CloseHandle(hThread);
		cout &lt;&lt; &quot;Programm schließt in 3 Sekunden\n&quot;;
		Sleep(3000);
	}

	else 
	{
		cout &lt;&lt; &quot;Falsche Eingabe bitte stop eingeben \n&quot;;
	}

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/315214/timer-ohne-sleep</link><generator>RSS for Node</generator><lastBuildDate>Fri, 31 Jul 2026 01:50:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/315214.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 26 Mar 2013 21:56:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Timer ohne Sleep()? on Tue, 26 Mar 2013 22:04:14 GMT]]></title><description><![CDATA[<p>Einen schönen Abend an alle <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="🙂"
    /> ,<br />
Ich habe mir ein kleines Programm geschrieben welches zur Erinnerung für mich dienen <a href="http://soll.Es" rel="nofollow">soll.Es</a> wartet bis eine vorher eingegebene Zeit vergangen ist und wenn diese Zeit abgelaufen ist gibt er mir solange ein Beep() aus bis ich stop in die Konsole eingebe.<br />
Nun zur Frage ich würde gerne eine Funktion einbauen um mir die Aktuell vergangene Zeit ausgeben lassen zu können.Das ganze funktioniert dann mit Sleep() auch nichtmehr soweit ich denke ,deshalb frage ich mich wie man das ganze anders gestalten könnte ,damit ich mir auch die aktuell vergangene Zeit anzeigen lassen kann.Hier mein bisheriger Code falls es jmd interessiert <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>
<pre><code>#include &lt;iostream&gt;
#define WIN32_LEAN_AND_MEAN
#include &lt;Windows.h&gt;
#include &lt;String&gt;
using std::cout;
using std::cin;
using std::string;

DWORD WINAPI ThreadFunc( int &amp;param )
{

	while (param == 0)
	{
	Beep(3000,3000);
	Sleep(3000);
	}
	std::cout &lt;&lt; &quot;thread wurde gestoppt&quot;;
	return 0;
}

int main ()
{   unsigned long time = 0;
	cout &lt;&lt; &quot;Wielange soll die Stoppuhr laufen?(in Minuten)\n&quot;;
    cin &gt;&gt; time;
	time = time*60000;
	cout &lt;&lt; &quot;Sie werden nun benachrichtigt sobald die Zeit abgelaufen ist\n&quot;;
	Sleep(time);
	cout &lt;&lt; &quot;Geben sie stop in die Konsole ein um das Programm zu beenden\n&quot;; 

	int iCondition = 0;
	DWORD dwThreadID = 0;

	HANDLE hThread = 0;
	hThread = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)&amp;ThreadFunc, &amp;iCondition, 0, &amp;dwThreadID);

	if (!hThread || !dwThreadID)
		return 1;  

	string abbruch;
	cin &gt;&gt; abbruch;

	if (abbruch == &quot;stop&quot;)
	{   iCondition = 1;
	    WaitForSingleObject(hThread, INFINITE);
	    CloseHandle(hThread);
		cout &lt;&lt; &quot;Programm schließt in 3 Sekunden\n&quot;;
		Sleep(3000);
	}

	else 
	{
		cout &lt;&lt; &quot;Falsche Eingabe bitte stop eingeben \n&quot;;
	}

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2310100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2310100</guid><dc:creator><![CDATA[DerNoob1993]]></dc:creator><pubDate>Tue, 26 Mar 2013 22:04:14 GMT</pubDate></item><item><title><![CDATA[Reply to Timer ohne Sleep()? on Tue, 26 Mar 2013 22:02:22 GMT]]></title><description><![CDATA[<p>Und wo genau ist das Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2310103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2310103</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 26 Mar 2013 22:02:22 GMT</pubDate></item><item><title><![CDATA[Reply to Timer ohne Sleep()? on Tue, 26 Mar 2013 22:09:22 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Und wo genau ist das Problem?</p>
</blockquote>
<p>Sagen wir mal ich stelle 10 Minuten als Zeit ein.Nach 5 minuten würde ich mir aber gerne die Zeit anzeigen lassen welche bereits vergangen ist.Wie soll ich das mit nem Sleep() machen können?Ich übergebe dem Sleep ja nur die Zeit die er warten soll ,und habe keine Variable welche die aktuelle Zeit mitzählt.Und da wäre halt die Frage wie man sowas gestalten könnte.Ich hoffe du verstehst was ich meine ist bisschen schwer zu erklären :).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2310107</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2310107</guid><dc:creator><![CDATA[DerNoob1993]]></dc:creator><pubDate>Tue, 26 Mar 2013 22:09:22 GMT</pubDate></item><item><title><![CDATA[Reply to Timer ohne Sleep()? on Tue, 26 Mar 2013 22:28:30 GMT]]></title><description><![CDATA[<p>Schlaf immer nur 900 Millisekunden und zeig dann die Zeit an. Das in einer großen Schleife. Kein zweiter Thread.<br />
Oder SleepEx oder doch nen Timer und ein Event und WaitForMultipleObjects.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2310109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2310109</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 26 Mar 2013 22:28:30 GMT</pubDate></item><item><title><![CDATA[Reply to Timer ohne Sleep()? on Tue, 26 Mar 2013 22:22:11 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Und wo genau ist das Problem?</p>
</blockquote>
<p>Er will die aktuell vergangene Zeit.<br />
Edit: Sorry, zu spät. Shame on me.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2310113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2310113</guid><dc:creator><![CDATA[Anonymus42]]></dc:creator><pubDate>Tue, 26 Mar 2013 22:22:11 GMT</pubDate></item><item><title><![CDATA[Reply to Timer ohne Sleep()? on Tue, 26 Mar 2013 22:22:16 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Schlaf immer nur 900 Millisekunden und zeig dann die Zeit an. Das in einer großen Schleife. Kein zweiter Thread.</p>
</blockquote>
<p>Ah stimmt so kann ich das natürlich auch handhaben danke dir.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2310114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2310114</guid><dc:creator><![CDATA[DerNoob1993]]></dc:creator><pubDate>Tue, 26 Mar 2013 22:22:16 GMT</pubDate></item><item><title><![CDATA[Reply to Timer ohne Sleep()? on Tue, 26 Mar 2013 22:33:47 GMT]]></title><description><![CDATA[<p>DerNoob1993 schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>Schlaf immer nur 900 Millisekunden und zeig dann die Zeit an. Das in einer großen Schleife. Kein zweiter Thread.</p>
</blockquote>
<p>Ah stimmt so kann ich das natürlich auch handhaben danke dir.</p>
</blockquote>
<p>In der Dchleife aber immer die Uhrzeit abfragen. Die ist genauer als Sleep, insbesondere, wenn man für 15 Minuten 1200 mal Sleep aufruft und jedes davon mit Pech 50ms abweicht.<br />
Selbst Sleep(1) reicht übrigens normalerweise, um die Prozessorlast von 100% auf 0% bis 1% zu senken.<br />
Aber die Schleife verschmitzt den Cache, das ist nicht optimal. Deswegen ist eigentlich schon das Zeug mit Thread und Wait... besser. Eigentlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2310115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2310115</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 26 Mar 2013 22:33:47 GMT</pubDate></item></channel></rss>