C++ REST SDK: asynchronous tasks vs. C++11 multithreading
<p>This is a conceptual question on the asynchronous task feature of the C++ REST SDK (and maybe also a bit of a noob question).</p>

<p>In a basic application, I have a client and perform several requests, e.g. like</p>

<pre><code>http_client client(U("whatever"));

for(int i=0; i&lt;100; ++i)
{
    http_request request;
    //fill the request
    client.request(request).then([](http_response response) { /* do something*/});
}
</code></pre>

<p>(The foor-loop is just to indicate that the request is sent often, I don't really use it in my code).</p>

<p>Questions:</p>

<ul>
<li><p>As far I understand, the asynchronous task library then handles those incoming requests in a parallel way -- meaning that not the main thread handles all tasks in an event-like fashion, but rather the library assigns the tasks to an underlying thread pool in some (--to me intransparent--) way. Did I get that correct?</p></li>
<li><p>If the previous view is correct, then is there any reason to combine the REST SDK with the multithreading capabilities of C++. For example, taking again the above loop, start 10 threads and in each one process 10 loop iterations. Does this makes sense or is it unnecessary?</p></li>
<li><p>Moreover, in general, are there any common patterns where one should combine the ppl-capabilities by the C++11 multithreading feature? Or is it safe to rely that the REST SDK and ppl under the hood get the job done better?</p></li>
</ul>

<p>(Info: I've asked this question also on the <a href="https://casablanca.codeplex.com/discussions/653111" rel="noreferrer">cpprest discussion page</a>. However, this forum seems to be not maintained anymore.)</p>