<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>io_service::dispatch</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../io_service.html" title="io_service">
<link rel="prev" href="add_service.html" title="io_service::add_service">
<link rel="next" href="has_service.html" title="io_service::has_service">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="add_service.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../io_service.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../boost_asio.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="has_service.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.io_service.dispatch"></a><a class="link" href="dispatch.html" title="io_service::dispatch">io_service::dispatch</a>
</h4></div></div></div>
<p>
          <a class="indexterm" name="id1158674"></a> 
Request the <a class="link" href="../io_service.html" title="io_service"><code class="computeroutput"><span class="identifier">io_service</span></code></a> to invoke the given
          handler.
        </p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
    <span class="keyword">typename</span> <a class="link" href="../CompletionHandler.html" title="Completion handler requirements">CompletionHandler</a><span class="special">&gt;</span>
<span class="keyword">void</span> <span class="identifier">dispatch</span><span class="special">(</span>
    <span class="identifier">CompletionHandler</span> <span class="identifier">handler</span><span class="special">);</span>
</pre>
<p>
          This function is used to ask the <a class="link" href="../io_service.html" title="io_service"><code class="computeroutput"><span class="identifier">io_service</span></code></a> to execute the given
          handler.
        </p>
<p>
          The <a class="link" href="../io_service.html" title="io_service"><code class="computeroutput"><span class="identifier">io_service</span></code></a>
          guarantees that the handler will only be called in a thread in which the
          <code class="computeroutput"><span class="identifier">run</span><span class="special">()</span></code>,
          <code class="computeroutput"><span class="identifier">run_one</span><span class="special">()</span></code>,
          <code class="computeroutput"><span class="identifier">poll</span><span class="special">()</span></code>
          or <code class="computeroutput"><span class="identifier">poll_one</span><span class="special">()</span></code>
          member functions is currently being invoked. The handler may be executed
          inside this function if the guarantee can be met.
        </p>
<a name="boost_asio.reference.io_service.dispatch.parameters"></a><h6>
<a name="id1158873"></a>
          <a class="link" href="dispatch.html#boost_asio.reference.io_service.dispatch.parameters">Parameters</a>
        </h6>
<div class="variablelist">
<p class="title"><b></b></p>
<dl>
<dt><span class="term">handler</span></dt>
<dd>
<p>
                The handler to be called. The <a class="link" href="../io_service.html" title="io_service"><code class="computeroutput"><span class="identifier">io_service</span></code></a> will make a copy
                of the handler object as required. The function signature of the
                handler must be: 
</p>
<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">handler</span><span class="special">();</span> 
</pre>
<p>
              </p>
</dd>
</dl>
</div>
<a name="boost_asio.reference.io_service.dispatch.remarks"></a><h6>
<a name="id1158952"></a>
          <a class="link" href="dispatch.html#boost_asio.reference.io_service.dispatch.remarks">Remarks</a>
        </h6>
<p>
          This function throws an exception only if:
        </p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
              the handler's <code class="computeroutput"><span class="identifier">asio_handler_allocate</span></code>
              function; or
            </li>
<li class="listitem">
              the handler's copy constructor
            </li>
</ul></div>
<p>
          throws an exception.
        </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2003 - 2010 Christopher M. Kohlhoff<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="add_service.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../io_service.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../boost_asio.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="has_service.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
