<?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[Asynchroner Funktionsaufruf]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie kann ich einen asynchronen Funktionsaufruf umsetzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/284572/asynchroner-funktionsaufruf</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 17:56:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/284572.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 Apr 2011 09:11:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Mon, 04 Apr 2011 09:11:38 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie kann ich einen asynchronen Funktionsaufruf umsetzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044419</guid><dc:creator><![CDATA[Neulinger]]></dc:creator><pubDate>Mon, 04 Apr 2011 09:11:38 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Mon, 04 Apr 2011 09:23:27 GMT]]></title><description><![CDATA[<p>Indem du die Funktion parallel in einem Thread aufrufst!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044426</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 04 Apr 2011 09:23:27 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Mon, 04 Apr 2011 09:34:19 GMT]]></title><description><![CDATA[<p>Wie meinst du &quot;parallel in einem Thread aufrufen&quot;? Ich möchte, dass der Funktionsaufruf im UI Thread stattfindet, aber eben gewissermaßen verzögert durchgeführt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044435</guid><dc:creator><![CDATA[Neulinger]]></dc:creator><pubDate>Mon, 04 Apr 2011 09:34:19 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Mon, 04 Apr 2011 09:45:26 GMT]]></title><description><![CDATA[<p>Ja möchten kannst du viel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044444</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 04 Apr 2011 09:45:26 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Mon, 04 Apr 2011 09:48:25 GMT]]></title><description><![CDATA[<p>Verzögert ist aber was andres als asynchron. Erklär mal genau was du willst und warum...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044447</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 04 Apr 2011 09:48:25 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Mon, 04 Apr 2011 10:04:40 GMT]]></title><description><![CDATA[<p>Vielleicht hilft das Kommando-Muster. Das kann man gut mit <code>function</code> und <code>bind</code> umsetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044459</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Mon, 04 Apr 2011 10:04:40 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Mon, 04 Apr 2011 10:44:47 GMT]]></title><description><![CDATA[<p>Ich möchte eine Funktion aufrufen, die jedoch nicht sofort bearbeitet wird, sondern sich zunächst in die &quot;Warteschleife&quot; zum Abarbeiten einreiht und damit erst später ausgeführt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044477</guid><dc:creator><![CDATA[Neulinger]]></dc:creator><pubDate>Mon, 04 Apr 2011 10:44:47 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Mon, 04 Apr 2011 10:48:04 GMT]]></title><description><![CDATA[<p>Dann programmier dir so eine &quot;Warteschleife&quot; wie du sie haben willst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044478</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 04 Apr 2011 10:48:04 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Mon, 04 Apr 2011 11:09:04 GMT]]></title><description><![CDATA[<p>Neulinger schrieb:</p>
<blockquote>
<p>Ich möchte eine Funktion aufrufen, die jedoch nicht sofort bearbeitet wird, sondern sich zunächst in die &quot;Warteschleife&quot; zum Abarbeiten einreiht und damit erst später ausgeführt wird.</p>
</blockquote>
<p>Dann passt das mit <code>function</code> und <code>bind</code> . Wenn Dein Compiler neu genug ist:</p>
<pre><code class="language-cpp">#include &lt;functional&gt;

std::tr1::function &lt;void ()&gt; f(std::tr1::bind(&amp;class_type::method, &amp;object, arg1, arg2));

//...

f(); // object.method(arg1, arg2);
</code></pre>
<p>ansonsten mit boost:</p>
<pre><code class="language-cpp">#include &lt;boost/function.hpp&gt;
#include &lt;boost/bind.hpp&gt;

boost::function &lt;void ()&gt; f(boost::bind(&amp;class_type::method, &amp;object, arg1, arg2));

//...

f(); // object.method(arg1, arg2);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2044487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044487</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Mon, 04 Apr 2011 11:09:04 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Mon, 04 Apr 2011 14:36:13 GMT]]></title><description><![CDATA[<p>std::queue + Vorposters stuff</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044563</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 04 Apr 2011 14:36:13 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Tue, 05 Apr 2011 11:02:58 GMT]]></title><description><![CDATA[<p>Ich nutze VS2008 SP1. Mein Compiler kennt zwar &lt;functional&gt;, jedoch nicht std::tr1::function bzw. std::tr1::bind.</p>
<p>&lt;boost/bind.hpp&gt; und &lt;boost/function.hpp&gt; kennt der Compiler leider auch nicht.</p>
<p>Was nun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044888</guid><dc:creator><![CDATA[Neulinger]]></dc:creator><pubDate>Tue, 05 Apr 2011 11:02:58 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Tue, 05 Apr 2011 11:17:24 GMT]]></title><description><![CDATA[<p>Das Zauberwort ist APC - Asynchronous Procedure Call</p>
<pre><code class="language-cpp">QueueUserAPC(Funktion,Thread,Parameter);
</code></pre>
<p>Verzögert aufrufen? Kein ding:</p>
<pre><code class="language-cpp">BOOL WINAPI CreateTimerQueueTimer(
  __out     PHANDLE phNewTimer,
  __in_opt  HANDLE TimerQueue,
  __in      WAITORTIMERCALLBACK Callback,
  __in_opt  PVOID Parameter,
  __in      DWORD DueTime,
  __in      DWORD Period,
  __in      ULONG Flags
);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2044895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044895</guid><dc:creator><![CDATA[AP0LL0]]></dc:creator><pubDate>Tue, 05 Apr 2011 11:17:24 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Tue, 05 Apr 2011 12:40:31 GMT]]></title><description><![CDATA[<p>AP0LL0 schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Ist grausig anzusehen und nicht portabel (Weil WinAPI, wenn ich das richtig entziffere). Dann doch lieber, was die Vorposter geschrieben haben <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/2044944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044944</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 05 Apr 2011 12:40:31 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Tue, 05 Apr 2011 13:01:25 GMT]]></title><description><![CDATA[<p>Neulinger schrieb:</p>
<blockquote>
<p>Ich nutze VS2008 SP1. Mein Compiler kennt zwar &lt;functional&gt;, jedoch nicht std::tr1::function bzw. std::tr1::bind.</p>
</blockquote>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;functional&gt;
#include &lt;queue&gt;

void fun(int a, double b)
{
    std::cout &lt;&lt; &quot;a: &quot; &lt;&lt; a &lt;&lt; &quot;, b: &quot; &lt;&lt; b &lt;&lt; std::endl;
};

int main()
{
    typedef std::tr1::function&lt;void ()&gt; command_type;
    typedef std::queue&lt;command_type&gt; command_queue_type;

    command_queue_type command_queue;

    command_queue.push(std::tr1::bind(&amp;fun, 42, 3.14159));

    std::cout &lt;&lt; &quot;la li lueue...&quot; &lt;&lt; std::endl;

    command_queue.front()();
    command_queue.pop();

}
</code></pre>
<p>Ausgabe:</p>
<pre><code>la li lueue...
a: 42, b: 3.14159
Drücken Sie eine beliebige Taste . . .
</code></pre>
<p>Gebaut mit:</p>
<pre><code>Microsoft Visual Studio 2008
Version 9.0.30729.1 SP
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2044956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044956</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 05 Apr 2011 13:01:25 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Tue, 12 Apr 2011 11:57:41 GMT]]></title><description><![CDATA[<p>Wenn ich das richtig verstehe, muss ich ja hier explizit die Funktionsausführung anfordern?!</p>
<p>Ich möchte eigentlich folgendes:</p>
<pre><code class="language-cpp">void fun(int a, double b)
{
    std::cout &lt;&lt; &quot;a: &quot; &lt;&lt; a &lt;&lt; &quot;, b: &quot; &lt;&lt; b &lt;&lt; std::endl;
};

void meth()
{      
    fun(5,10); // irgendwie asynchroner Funktionsaufruf!!!

    std::cout &lt;&lt; &quot;la li lueue...&quot; &lt;&lt; std::endl; // weitere Funktionen und Methoden
    // usw.   
} // nach Abschluss der Funktion wird die Funktion aufgerufen
</code></pre>
<p>Prinzipiell soll es also wie ein asynchrones Eventhandling funktionieren. Dabei wird der Delegate erst &quot;am Ende des Codes&quot; aufgerufen. Der Aufruf des Delegate hat sich nämlich in die Dispatcher Reihenfolge eingereiht und wird ausgeführt, sobald er an der Reihe ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048001</guid><dc:creator><![CDATA[Neulinger]]></dc:creator><pubDate>Tue, 12 Apr 2011 11:57:41 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Tue, 12 Apr 2011 12:44:31 GMT]]></title><description><![CDATA[<p>Guck Dir mal <code>boost.asio</code> an. Damit kann man sowas ganz wunderbar umsetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048039</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 12 Apr 2011 12:44:31 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Tue, 12 Apr 2011 13:29:32 GMT]]></title><description><![CDATA[<p>Ist &quot;#include &lt;boost/function.hpp&gt;&quot; eine Standardbibliothek? Denn leider kann ich sie nicht ohne Weiteres hinzufügen:</p>
<blockquote>
<p>fatal error C1083: Datei (Include) kann nicht geöffnet werden: &quot;boost/function.hpp&quot;: No such file or directory</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2048065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048065</guid><dc:creator><![CDATA[Neulinger]]></dc:creator><pubDate>Tue, 12 Apr 2011 13:29:32 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Tue, 12 Apr 2011 13:44:45 GMT]]></title><description><![CDATA[<p>Neulinger schrieb:</p>
<blockquote>
<p>Ist &quot;#include &lt;boost/function.hpp&gt;&quot; eine Standardbibliothek? Denn leider kann ich sie nicht ohne Weiteres hinzufügen:</p>
<blockquote>
<p>fatal error C1083: Datei (Include) kann nicht geöffnet werden: &quot;boost/function.hpp&quot;: No such file or directory</p>
</blockquote>
</blockquote>
<p>Nein, Boost gehört nicht zur C++ Standard Library.</p>
<p><a href="http://www.boost.org/" rel="nofollow">http://www.boost.org/</a><br />
<a href="http://www.boostpro.com/download/" rel="nofollow">http://www.boostpro.com/download/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048073</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Tue, 12 Apr 2011 13:44:45 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Tue, 12 Apr 2011 14:07:41 GMT]]></title><description><![CDATA[<p>Neulinger schrieb:</p>
<blockquote>
<p>Was nun?</p>
</blockquote>
<p>Informationen zu Boost findest du auf <a href="http://www.boost.org/" rel="nofollow">deren Seite</a>, für MSVC gibt es sogar einen <a href="http://www.boostpro.com/download/" rel="nofollow">Installer</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048092</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 12 Apr 2011 14:07:41 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Wed, 13 Apr 2011 08:11:54 GMT]]></title><description><![CDATA[<p>So endlich die Einbindung der library geschafft ;-). Ich hatte dann jedoch einen error beim compilen, dass &quot;std::abort nicht existiert&quot; (war in einer Boost Datei). Ich habe es dann einfach ausgeklammert, danach konnte ich compilen.</p>
<p>Mir fällt es derzeit relativ schwer einen Einstieg zu finden, den asynchronen Funktionsaufruf durch zu führen. Boost bietet ja eben noch vieles mehr an Funktionalitäten... Wo soll ich anfangen zu suchen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048495</guid><dc:creator><![CDATA[Neulinger]]></dc:creator><pubDate>Wed, 13 Apr 2011 08:11:54 GMT</pubDate></item><item><title><![CDATA[Reply to Asynchroner Funktionsaufruf on Wed, 13 Apr 2011 09:08:56 GMT]]></title><description><![CDATA[<p>Wurde doch schon gesagt: Boost.Asio<br />
Konkret bei boost::asio::io_service und dessen Member Funktion post(..).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048537</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Wed, 13 Apr 2011 09:08:56 GMT</pubDate></item></channel></rss>