<?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[Mutex]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie genau wende ich Mutex an??<br />
Ich habe mir überleg ein Mutex mit dieser Funktion zu erstellen:</p>
<pre><code>WaitForSingleObject(CreateMutex(NULL, true, &quot;ThreadAnz&quot;), INFINITE);
</code></pre>
<p>Doch wenn ich diese Funktion wieder aufrufe läuft das Programm einfach weiter, ohne in der WaitFor... Funktion zu warten.<br />
Was genau mache ich falsch?<br />
Also ich möchte, dass sobald ein Mutex existiert und ein Weiterer mit den gleichen Namen erstellt werden soll, dass dann das Programm in der Funktion WaitFor... stehen bleiben soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/177065/mutex</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 18:39:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/177065.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 Mar 2007 20:22:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mutex on Tue, 27 Mar 2007 20:22:31 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie genau wende ich Mutex an??<br />
Ich habe mir überleg ein Mutex mit dieser Funktion zu erstellen:</p>
<pre><code>WaitForSingleObject(CreateMutex(NULL, true, &quot;ThreadAnz&quot;), INFINITE);
</code></pre>
<p>Doch wenn ich diese Funktion wieder aufrufe läuft das Programm einfach weiter, ohne in der WaitFor... Funktion zu warten.<br />
Was genau mache ich falsch?<br />
Also ich möchte, dass sobald ein Mutex existiert und ein Weiterer mit den gleichen Namen erstellt werden soll, dass dann das Programm in der Funktion WaitFor... stehen bleiben soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254189</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Tue, 27 Mar 2007 20:22:31 GMT</pubDate></item><item><title><![CDATA[Reply to Mutex on Tue, 27 Mar 2007 22:14:37 GMT]]></title><description><![CDATA[<p>ReleaseMutex() vergessen?<br />
--&gt; <a href="http://msdn2.microsoft.com/en-us/library/ms686927.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms686927.aspx</a><br />
btw: so wie du's machst wird immer eine neues handle erzeugt. das ist ziemlich ungünstig.<br />
am besten einmal nur 'CreateMutex()' aufrufen und dann 'WaitForSingleObject()/ReleaseMutex()' mit dem selben handle.<br />
<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/1254223</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254223</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Tue, 27 Mar 2007 22:14:37 GMT</pubDate></item><item><title><![CDATA[Reply to Mutex on Wed, 28 Mar 2007 00:20:05 GMT]]></title><description><![CDATA[<p>Und freigeben würd' ich die Dinger auch irgendwann wieder...</p>
<p>p.S.: hihi, freigeben kann man ja als ReleaseMutex() interpretieren wie mir gerade auffällt. Ich meine natürlich freigeben wie in CloseHandle().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254231</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 28 Mar 2007 00:20:05 GMT</pubDate></item><item><title><![CDATA[Reply to Mutex on Wed, 28 Mar 2007 06:04:14 GMT]]></title><description><![CDATA[<p>Ok, vielen Dank!<br />
Das werde ich gleich sofort mal antesten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254256</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 06:04:14 GMT</pubDate></item><item><title><![CDATA[Reply to Mutex on Wed, 28 Mar 2007 06:47:54 GMT]]></title><description><![CDATA[<p>TheCaleb schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>wie genau wende ich Mutex an??<br />
Ich habe mir überleg ein Mutex mit dieser Funktion zu erstellen:</p>
<pre><code>WaitForSingleObject(CreateMutex(NULL, true, &quot;ThreadAnz&quot;), INFINITE);
</code></pre>
<p>Doch wenn ich diese Funktion wieder aufrufe läuft das Programm einfach weiter, ohne in der WaitFor... Funktion zu warten.<br />
Was genau mache ich falsch?<br />
Also ich möchte, dass sobald ein Mutex existiert und ein Weiterer mit den gleichen Namen erstellt werden soll, dass dann das Programm in der Funktion WaitFor... stehen bleiben soll.</p>
</blockquote>
<p>Diese Objekte blockieren nur, wenn Sie aus unterschiedlichen Threads ausgeführt werden! Werden Sie aus dem selben Thread ausgeführt passiert gar nichts, denn Du bist ja der Owner!</p>
<p>Wenn Du das aus einem Thread möchtest, dann würde ich Dich jetzt fragen: Wer löst die Blockade wieder auf?</p>
<p>ReleaseMutex hat damit gar nichts zu tun, das es nicht blockiert. Aber aufrufen sollte man diese Funktion schon. Also solltest Du auch das Handle speichern!<br />
Bzw. OpenMutex verwenden um an einen bestehenden Mutex heranzukommen.<br />
Zudem würde ich den Namen schon etwas komplizierter gestalten. Der gilt systemweit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254286</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 28 Mar 2007 06:47:54 GMT</pubDate></item><item><title><![CDATA[Reply to Mutex on Wed, 28 Mar 2007 06:53:13 GMT]]></title><description><![CDATA[<p>Also wenn ich</p>
<pre><code>WaitForSingleObject(Mutex, INFINITE);
</code></pre>
<p>schreibe, dann ist der Mutex für den jeweiligen Thread owner und wenn ich ihn dann mit</p>
<pre><code>ReleaseMutex(Mutex);
</code></pre>
<p>wieder freigebe, dann kann ein anderer Thread owner davon werden, ansonsten würde der Thread in der WaitFor... Funktion warten oder vertuh ich mich da??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254289</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 06:53:13 GMT</pubDate></item><item><title><![CDATA[Reply to Mutex on Wed, 28 Mar 2007 07:42:00 GMT]]></title><description><![CDATA[<p>Lies doch die Doku.<br />
Du hast den Mutex als Onwer angelegt mit CreateMutex (zweite Parameter TRUE). Der Mutex wurde also erzeugt und sofort das Eigentum des aktuellen Threads.<br />
Also ist ein Wait unnötig.</p>
<p>Wenn ein Thread den Mutex nicht besitzt, kann er diesen mit WaitForSingleObject erhalten.</p>
<p>Ein Thread der Owner eines Mutex ist muss diesen mit ReleaseMutex freigeben, damit andere darauf zugreifen können!</p>
<p>Brauchst Du eigentlich einen Mutex? Langt nicht evtl. eine Critical Section?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254318</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 28 Mar 2007 07:42:00 GMT</pubDate></item><item><title><![CDATA[Reply to Mutex on Wed, 28 Mar 2007 08:09:44 GMT]]></title><description><![CDATA[<p>Ist ok, danke!<br />
Mehr wollte ich nicht wissen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254345</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254345</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 08:09:44 GMT</pubDate></item><item><title><![CDATA[Reply to Mutex on Wed, 28 Mar 2007 08:19:46 GMT]]></title><description><![CDATA[<p>vorsicht mit critical sections, versuchs lieber eventgesteuert und mit synchronize() eh du in einer threadmethode mit CS arbeitest, in windows vista wird das sonst zum stolperstein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254358</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Wed, 28 Mar 2007 08:19:46 GMT</pubDate></item><item><title><![CDATA[Reply to Mutex on Wed, 28 Mar 2007 09:32:33 GMT]]></title><description><![CDATA[<p>Ceos schrieb:</p>
<blockquote>
<p>vorsicht mit critical sections, versuchs lieber eventgesteuert und mit synchronize() eh du in einer threadmethode mit CS arbeitest, in windows vista wird das sonst zum stolperstein.</p>
</blockquote>
<p>Bitte wie? Kannst Du das erklären.<br />
Was hat sich bitte in Vista hier geändert? Links auf die Specs bitte!<br />
Was meinst Du mit Synchronize? Das ist IMHO keine Win32 API Funktion.</p>
<p>CS sind immer noch der einfachste Weg gesharte Daten zu blocken für den Schreib/Lesezugriff. Mutexe und Events sind hier viel zu langsam und hinderlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254425</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 28 Mar 2007 09:32:33 GMT</pubDate></item><item><title><![CDATA[Reply to Mutex on Wed, 28 Mar 2007 09:36:57 GMT]]></title><description><![CDATA[<p>Gibt es bei CS auch so eine Art WaitFor Funktion, die ein Wartezustand erzeugt, der wenig CPU Last erzeugt??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254430</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 09:36:57 GMT</pubDate></item><item><title><![CDATA[Reply to Mutex on Wed, 28 Mar 2007 09:55:45 GMT]]></title><description><![CDATA[<p>EnterCriticalSection wartet bis die CS frei wird (natürlich i.d.R. ohne CPU-Last)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254438</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Wed, 28 Mar 2007 09:55:45 GMT</pubDate></item><item><title><![CDATA[Reply to Mutex on Wed, 28 Mar 2007 09:57:44 GMT]]></title><description><![CDATA[<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254440</guid><dc:creator><![CDATA[TheCaleb]]></dc:creator><pubDate>Wed, 28 Mar 2007 09:57:44 GMT</pubDate></item></channel></rss>