<?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[Eigener Event Dispatcher]]></title><description><![CDATA[<p>Ich bin gerade daran, eine Anwendung zur Ansteuerung eines USB-Geräts zu schreiben. Dazu mache ich eine Klasse, die die Kommunikation regelt.<br />
Nun ist mir nicht ganz klar, wie man das sauber löst: Die Klasse muss ständig pollen, ob Daten verfügbar sind oder nicht (vom USB-Gerät her). Ein Interrupt oder sowas steht also nicht zur Verfügung. Wenn nun Daten auslesbar sind, muss ich die auslesen usw. Jetzt wie macht das mit dem ständigen Pollen sauber? Ist folgendes Konzept i.o?</p>
<pre><code>while (!terminate)
{
    if (readUSBStatus() == USB_DATA_AVAILABLE)
    {
        read...
        if (OnDataAvailable != NULL) OnDataAvailable(...);
    }
    else
    {
        Application.ProcessMessages();
        Sleep(1);
    }
}
</code></pre>
<p>Also einfach quasi eine Endlosschlaufe, in der ständig der Zustand abgefragt wird und die Windows Message Queue bearbeitet wird. Falls Daten kommen, ein Event der eigenen Klasse auslösen, falls eine Ereignisroutine geschrieben ist.</p>
<p>Ist das i.o. auf diese Weise?</p>
<p>- Adrian</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/89766/eigener-event-dispatcher</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Jul 2026 06:12:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/89766.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 22 Oct 2004 14:25:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Eigener Event Dispatcher on Fri, 22 Oct 2004 14:25:02 GMT]]></title><description><![CDATA[<p>Ich bin gerade daran, eine Anwendung zur Ansteuerung eines USB-Geräts zu schreiben. Dazu mache ich eine Klasse, die die Kommunikation regelt.<br />
Nun ist mir nicht ganz klar, wie man das sauber löst: Die Klasse muss ständig pollen, ob Daten verfügbar sind oder nicht (vom USB-Gerät her). Ein Interrupt oder sowas steht also nicht zur Verfügung. Wenn nun Daten auslesbar sind, muss ich die auslesen usw. Jetzt wie macht das mit dem ständigen Pollen sauber? Ist folgendes Konzept i.o?</p>
<pre><code>while (!terminate)
{
    if (readUSBStatus() == USB_DATA_AVAILABLE)
    {
        read...
        if (OnDataAvailable != NULL) OnDataAvailable(...);
    }
    else
    {
        Application.ProcessMessages();
        Sleep(1);
    }
}
</code></pre>
<p>Also einfach quasi eine Endlosschlaufe, in der ständig der Zustand abgefragt wird und die Windows Message Queue bearbeitet wird. Falls Daten kommen, ein Event der eigenen Klasse auslösen, falls eine Ereignisroutine geschrieben ist.</p>
<p>Ist das i.o. auf diese Weise?</p>
<p>- Adrian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/635120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/635120</guid><dc:creator><![CDATA[ABader]]></dc:creator><pubDate>Fri, 22 Oct 2004 14:25:02 GMT</pubDate></item><item><title><![CDATA[Reply to Eigener Event Dispatcher on Fri, 22 Oct 2004 21:15:12 GMT]]></title><description><![CDATA[<p>Nach längerem Überlegen fällt mir wirklich nix besseres ein. Ist das wirklich *die* Lösung?</p>
<p>- Adrian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/635417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/635417</guid><dc:creator><![CDATA[ABader]]></dc:creator><pubDate>Fri, 22 Oct 2004 21:15:12 GMT</pubDate></item><item><title><![CDATA[Reply to Eigener Event Dispatcher on Sat, 23 Oct 2004 08:28:32 GMT]]></title><description><![CDATA[<p>Ohne mich wirklich damit auseinandergesetzt zu haben würde ich vielleicht noch vorschlagen, das ganze in einen eigenen Thread zu packen (falls sich das <em>while (!terminate)</em> nicht schon darauf bezieht).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/635508</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/635508</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Sat, 23 Oct 2004 08:28:32 GMT</pubDate></item></channel></rss>