<?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[Synchrone Calls - Asynchrone Calls (threaded)]]></title><description><![CDATA[<p>Die Situation ist recht einfach zu beschreiben.<br />
Es gibt eine Klasse A deren Methoden sehr lange laufen können.<br />
Der normale Aufruf geschieht synchron im Code:</p>
<pre><code>Result = A-&gt;Funktion1(...)
// done
</code></pre>
<p>Dies könnte zukünftig so aussehen (asynchron)</p>
<pre><code>A-&gt;QueueFunction(Funktion(...), Result);
A-&gt;Run();

while( A-&gt;IsRunning() ) { 
  cout &lt;&lt; &quot;.&quot;;
  sleep/yield();
}
// done
</code></pre>
<p>Frage 1 : Wie sieht eine schöne C++-Deklaration von QueueFunction aus ?</p>
<p>Frage 2 : Wie sieht der konkrete Funktionsaufruf aus wenn dieses Objekt von der Queue ausgeführt wird ?</p>
<p>Bitte keine Diskussion über Events anfangen, aber<br />
Danke für Rückmeldungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/226860/synchrone-calls-asynchrone-calls-threaded</link><generator>RSS for Node</generator><lastBuildDate>Wed, 30 Sep 2026 10:07:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/226860.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 06 Nov 2008 18:06:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Synchrone Calls - Asynchrone Calls (threaded) on Thu, 06 Nov 2008 18:06:05 GMT]]></title><description><![CDATA[<p>Die Situation ist recht einfach zu beschreiben.<br />
Es gibt eine Klasse A deren Methoden sehr lange laufen können.<br />
Der normale Aufruf geschieht synchron im Code:</p>
<pre><code>Result = A-&gt;Funktion1(...)
// done
</code></pre>
<p>Dies könnte zukünftig so aussehen (asynchron)</p>
<pre><code>A-&gt;QueueFunction(Funktion(...), Result);
A-&gt;Run();

while( A-&gt;IsRunning() ) { 
  cout &lt;&lt; &quot;.&quot;;
  sleep/yield();
}
// done
</code></pre>
<p>Frage 1 : Wie sieht eine schöne C++-Deklaration von QueueFunction aus ?</p>
<p>Frage 2 : Wie sieht der konkrete Funktionsaufruf aus wenn dieses Objekt von der Queue ausgeführt wird ?</p>
<p>Bitte keine Diskussion über Events anfangen, aber<br />
Danke für Rückmeldungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1611433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1611433</guid><dc:creator><![CDATA[NoNoob]]></dc:creator><pubDate>Thu, 06 Nov 2008 18:06:05 GMT</pubDate></item><item><title><![CDATA[Reply to Synchrone Calls - Asynchrone Calls (threaded) on Fri, 07 Nov 2008 07:27:18 GMT]]></title><description><![CDATA[<p>Ich denke mal, dass du so was, wie Funktionszeiger suchst.</p>
<p>Sehr ausführlich und auf Englisch:<br />
<a href="http://www.newty.de/fpt/index.html" rel="nofollow">http://www.newty.de/fpt/index.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1611629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1611629</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 07 Nov 2008 07:27:18 GMT</pubDate></item><item><title><![CDATA[Reply to Synchrone Calls - Asynchrone Calls (threaded) on Fri, 07 Nov 2008 08:49:57 GMT]]></title><description><![CDATA[<p>NoNoob schrieb:</p>
<blockquote>
<p>Dies könnte zukünftig so aussehen (asynchron)</p>
<pre><code>A-&gt;QueueFunction(Funktion(...), Result);
A-&gt;Run();

while( A-&gt;IsRunning() ) { 
  cout &lt;&lt; &quot;.&quot;;
  sleep/yield();
}
// done
</code></pre>
<p>Frage 1 : Wie sieht eine schöne C++-Deklaration von QueueFunction aus ?</p>
</blockquote>
<p>Ich würde bevorzugen:</p>
<pre><code class="language-cpp">Future&lt; ResultType &gt; res = A.Funktion1( ... );
    // ... mache was anderes
    ResultType r = *res; // Aufruf blockiert, falls Result noch nicht vorliegt.

    // oder 
    for( ; res.empty(); sleep(..) )
        cout &lt;&lt; &quot;.&quot;;
    cout &lt;&lt; endl;
    ResultType r = *res;
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1611662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1611662</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Fri, 07 Nov 2008 08:49:57 GMT</pubDate></item><item><title><![CDATA[Reply to Synchrone Calls - Asynchrone Calls (threaded) on Fri, 07 Nov 2008 08:59:21 GMT]]></title><description><![CDATA[<p>Werner_logoff schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Ein toller Tip, wo doch schon so viele Standardbibliotheken mit Futures existieren... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Ich würde die Funktion entkoppeln. In Deiner Klasse läuft ein Thread (permanent), der darauf wartet, dass Die Funktion aufgerfufen wird. Wenn der Aufruf abgearbeitet ist, wird, wie gehabt ein Flag gesetzt, und der Thread wartet auf den nächsten Aufruf. Wenn die Funktion mehrere male hintereinander (schneller als der Thread arbeiten kann) aufgerufen werden soll, kann man die Aufrufe queuen, und dann nacheinander abarbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1611670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1611670</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 07 Nov 2008 08:59:21 GMT</pubDate></item></channel></rss>