<?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[überflüssige Events stornieren? (WaitForMultipleObjects)]]></title><description><![CDATA[<p>Hi,</p>
<p>Mit WaitForMultipleObjects warte ich auf Daten die über die Com-Schnittstelle reinkommen.<br />
Die Anzahl der Bytes, die ich empfangen werde, ist mir von Anfang an bekannt.<br />
Anhand dieser Byte-Zahl lasse ich meine Schleife laufen und lese vom Port.</p>
<p>Das Gerät, welches mir die Daten schickt, schreibt mit Verzögerungen.<br />
Macht intern folgendes:</p>
<blockquote>
<p>write(Data-Part1)</p>
<p>DO STH.</p>
<p>write(Data-Part2)</p>
</blockquote>
<p>Ich will vom Puffer sowohl Data-Part1, also auch Data-Part2 gleichzeitig auslesen.</p>
<ol>
<li>WaitForMultipleObjects signalisiert bei Empfang von Data-Part1</li>
<li>Ich lese vom Puffer alle Daten in meiner Schleife, da mittlerweile Data-Part2 auch anliegt, wird es auch mitgelesen.</li>
<li>Danach kommt nun das Problem,..WaitForMultipleObjects wird nochmal ausgelöst (wegen Data-Part2) obwohl ich Data-Part2 schon beim ersten mal ausgelesen habe.</li>
</ol>
<p>Wie kann ich dieses erneute signalisieren stornieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/223460/überflüssige-events-stornieren-waitformultipleobjects</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 07:19:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/223460.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 26 Sep 2008 09:08:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to überflüssige Events stornieren? (WaitForMultipleObjects) on Fri, 26 Sep 2008 09:08:44 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Mit WaitForMultipleObjects warte ich auf Daten die über die Com-Schnittstelle reinkommen.<br />
Die Anzahl der Bytes, die ich empfangen werde, ist mir von Anfang an bekannt.<br />
Anhand dieser Byte-Zahl lasse ich meine Schleife laufen und lese vom Port.</p>
<p>Das Gerät, welches mir die Daten schickt, schreibt mit Verzögerungen.<br />
Macht intern folgendes:</p>
<blockquote>
<p>write(Data-Part1)</p>
<p>DO STH.</p>
<p>write(Data-Part2)</p>
</blockquote>
<p>Ich will vom Puffer sowohl Data-Part1, also auch Data-Part2 gleichzeitig auslesen.</p>
<ol>
<li>WaitForMultipleObjects signalisiert bei Empfang von Data-Part1</li>
<li>Ich lese vom Puffer alle Daten in meiner Schleife, da mittlerweile Data-Part2 auch anliegt, wird es auch mitgelesen.</li>
<li>Danach kommt nun das Problem,..WaitForMultipleObjects wird nochmal ausgelöst (wegen Data-Part2) obwohl ich Data-Part2 schon beim ersten mal ausgelesen habe.</li>
</ol>
<p>Wie kann ich dieses erneute signalisieren stornieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1588328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1588328</guid><dc:creator><![CDATA[donglebob]]></dc:creator><pubDate>Fri, 26 Sep 2008 09:08:44 GMT</pubDate></item><item><title><![CDATA[Reply to überflüssige Events stornieren? (WaitForMultipleObjects) on Fri, 26 Sep 2008 10:22:18 GMT]]></title><description><![CDATA[<p>Du könntest manuel selbst mit ResetEvent, den Event löschen, nachdem Du Part2 auch empfagen hast. Das Problem ist aber: Was ist, wenn Deien andere Applikaiton auch schon wieder Part1 Daten gesendet hat?</p>
<p>Dein Algorithmus ist einfach falsch.<br />
Du solltest imer auf Daten per Event warten! Und gemäß des Protokolles, das Du hast (Anzahl Daten, Part1 und Part2) in den entsprechenden neuen Wartezustand übergehen.<br />
Der Event zeigt einfach an: Seit dem letzten Warten sind Daten eingegangen.<br />
Du könntest ja auch direkt wieder für den Part2 einen Warteprozess anstossen. Sind die aten da, kehrt das System sowieso gleich zurück und der Event ist gelöscht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1588375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1588375</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 26 Sep 2008 10:22:18 GMT</pubDate></item><item><title><![CDATA[Reply to überflüssige Events stornieren? (WaitForMultipleObjects) on Fri, 26 Sep 2008 12:23:12 GMT]]></title><description><![CDATA[<p>Bei einem Event entnehme ich die Daten und lege diese in eine Art Stack, welches vom anderen Programmteil (Thread) abgeholt und verarbeitet wird.<br />
Wenn nun die Daten nicht komplett vorliegen,.. ist das ein Problem für mich.<br />
Der Thread guckt zyklisch in diesem Stack nach ob irgendwas vorhanden ist, wenn ja entnehmen und verarbeiten.<br />
Ich muss gucken, dass die Daten vollständig für den Thread vorliegen und nicht Teile davon.</p>
<p>Deine Erläuterung verstehe ich auch...daran hab ich schon gedacht....<br />
Es könnte beim löschen der &quot;unwichtigen&quot; Events ein &quot;wichtiges&quot; Event mitgelöscht werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1588426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1588426</guid><dc:creator><![CDATA[donglebob]]></dc:creator><pubDate>Fri, 26 Sep 2008 12:23:12 GMT</pubDate></item></channel></rss>