<?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[Wie einen DoubleBuffer Implementieren?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe 2 threads, einer schreibt in einen buffer1, wenn der voll<br />
ist soll thread 2 den lesen wärend thread1 in buffer2 schreibt, danach<br />
wieder andersrum...</p>
<p>Hat einer so ne Art Blaupause, wie ich sowas mit der WinAPI anstellen<br />
kann? Vieleicht sogar n Code-Beispiel?</p>
<p>Danke!</p>
<p>Gruss,</p>
<p>Ralf</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/155765/wie-einen-doublebuffer-implementieren</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 02:10:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/155765.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Aug 2006 11:55:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie einen DoubleBuffer Implementieren? on Wed, 09 Aug 2006 11:55:50 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe 2 threads, einer schreibt in einen buffer1, wenn der voll<br />
ist soll thread 2 den lesen wärend thread1 in buffer2 schreibt, danach<br />
wieder andersrum...</p>
<p>Hat einer so ne Art Blaupause, wie ich sowas mit der WinAPI anstellen<br />
kann? Vieleicht sogar n Code-Beispiel?</p>
<p>Danke!</p>
<p>Gruss,</p>
<p>Ralf</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1113684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1113684</guid><dc:creator><![CDATA[doublebuffer]]></dc:creator><pubDate>Wed, 09 Aug 2006 11:55:50 GMT</pubDate></item><item><title><![CDATA[Reply to Wie einen DoubleBuffer Implementieren? on Wed, 09 Aug 2006 12:55:58 GMT]]></title><description><![CDATA[<p>hm... naja, vielleicht indem du einfach zwei bufer allokierst</p>
<pre><code class="language-cpp">char* buf1=new char[5000];
char* buf2=new char[5000];

// hast du hier zwei pointer, einen schreib und einen lesepointer
char* read=NULL;
char* write=NULL;

// intiailsieren:
write=buf1;

// jetzt voll schreiben, wenn der buffer voll is, dann
read=buf1;
write=buf2;

// und so weiter. So kannst du immer mit dem writepointer schreiben, und du brauchst dabei nich zu wissen, in welchen buffer das gerade geht
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1113749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1113749</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Wed, 09 Aug 2006 12:55:58 GMT</pubDate></item><item><title><![CDATA[Reply to Wie einen DoubleBuffer Implementieren? on Thu, 10 Aug 2006 12:28:41 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/2470">@Maxi</a>: wenn aber der Consumer nicht gleichschnell ist wie der Producer dann wird deine Methode scheitern <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>@Threadersteller:<br />
was du suchst ist eine Methode fuer Thread-Synchronisation. D.h. Thread 1 (der Producer) muss Thread 2 (dem Consumer)bescheid geben, wann es einen Buffer lesen kann (der Consumer soll ja keinen leeren Buffer lesen), und umgekehrt muss der Consumer dem Producer bescheid geben, ab wann der Buffer wieder zum Schreiben frei ist (der Producer soll ja nicht ungelesene Daten ueberschreiben). Leider hab ich keine Ahnung was die WinAPI so an Synchronisationsmittel mitbringt, aber such mal in der MSDN nach &quot;CriticalSection&quot; <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/1114538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1114538</guid><dc:creator><![CDATA[Blue-Tiger]]></dc:creator><pubDate>Thu, 10 Aug 2006 12:28:41 GMT</pubDate></item><item><title><![CDATA[Reply to Wie einen DoubleBuffer Implementieren? on Thu, 10 Aug 2006 13:42:55 GMT]]></title><description><![CDATA[<p>Hm, warum pusht der Producer das nicht einfach in einen stack/deque und<br />
der consumer liest dann dort jeweils die buffer aus? So das der Producer<br />
nicht anhalten muss, und der Consumer immer wenn er fertig ist, nachschauen<br />
kann, ob es noch mehr Arbeit gibt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1114626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1114626</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Thu, 10 Aug 2006 13:42:55 GMT</pubDate></item></channel></rss>