<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Threading</title>
        <link>http://geekswithblogs.net/rashid/category/6693.aspx</link>
        <description>Threading</description>
        <language>en-US</language>
        <copyright>Kazi Manzur Rashid</copyright>
        <managingEditor>kazimanzurrashid@yahoo.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Utilize ThreadPool in WebService</title>
            <link>http://geekswithblogs.net/rashid/archive/2007/06/19/Utilize-ThreadPool-in-WebService.aspx</link>
            <description>&lt;p&gt;Asp.net 2.0 has a built-in feature for creating multi-threaded page AKA AsyncPage, but for Web Service threading, there are no out of the box support. The following code snippet will show you how to create a multi-threaded web service. For the sake of the example, let us assume that we are creating Video Search Service, which will search different sites such as YouTube, MetaCafe, and DailyMotion for a given keyword and returns a composite result. Since this search can be done independently, we can surly invoke separate threads for each search. Let us see how we can utilize the built-in ThreadPool to create a multithread web service. &lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;    1&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="color: black"&gt; System; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;    2&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="color: black"&gt; System.Threading; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;    3&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="color: black"&gt; System.Collections; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;    4&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="color: black"&gt; System.Collections.Generic; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;    5&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="color: black"&gt; System.Web; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;    6&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span style="color: black"&gt; System.Web.Services; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;    7&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;    8&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;    9&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Video&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   10&lt;/span&gt;&lt;span style="color: black"&gt; { &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   11&lt;/span&gt;&lt;span style="color: black"&gt;     &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="color: black"&gt; Title; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   12&lt;/span&gt;&lt;span style="color: black"&gt;     &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="color: black"&gt; Author; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   13&lt;/span&gt;&lt;span style="color: black"&gt;     &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="color: black"&gt; Description; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   14&lt;/span&gt;&lt;span style="color: black"&gt;     &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="color: black"&gt; Url; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   15&lt;/span&gt;&lt;span style="color: black"&gt;     &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="color: black"&gt; OriginalUrl; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   16&lt;/span&gt;&lt;span style="color: black"&gt;     &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="color: black"&gt; Thumbnail; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   17&lt;/span&gt;&lt;span style="color: black"&gt;     &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="color: black"&gt; Source; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   18&lt;/span&gt;&lt;span style="color: black"&gt; } &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   19&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   20&lt;/span&gt;&lt;span style="color: black"&gt; [&lt;/span&gt;&lt;span style="color: #2b91af"&gt;WebService&lt;/span&gt;&lt;span style="color: black"&gt;(Namespace = &lt;/span&gt;&lt;span style="color: #a31515"&gt;"http://tempuri.org/"&lt;/span&gt;&lt;span style="color: black"&gt;)] &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   21&lt;/span&gt;&lt;span style="color: black"&gt; [&lt;/span&gt;&lt;span style="color: #2b91af"&gt;WebServiceBinding&lt;/span&gt;&lt;span style="color: black"&gt;(ConformsTo = &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WsiProfiles&lt;/span&gt;&lt;span style="color: black"&gt;.BasicProfile1_1)] &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   22&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;VideoSearchService&lt;/span&gt;&lt;span style="color: black"&gt; : &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WebService&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   23&lt;/span&gt;&lt;span style="color: black"&gt; { &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   24&lt;/span&gt;&lt;span style="color: black"&gt;     &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="color: black"&gt; VideoSearchService() &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   25&lt;/span&gt;&lt;span style="color: black"&gt;     { &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   26&lt;/span&gt;&lt;span style="color: black"&gt;     } &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   27&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   28&lt;/span&gt;&lt;span style="color: black"&gt;     [&lt;/span&gt;&lt;span style="color: #2b91af"&gt;WebMethod&lt;/span&gt;&lt;span style="color: black"&gt;()] &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   29&lt;/span&gt;&lt;span style="color: black"&gt;     &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;Video&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt; Search(&lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="color: black"&gt; keyword) &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   30&lt;/span&gt;&lt;span style="color: black"&gt;     { &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   36&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;Video&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt; result = &lt;/span&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;Video&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt;(); &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   37&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;ManualResetEvent&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt; locks = locks = &lt;/span&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;ManualResetEvent&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt;(); &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   38&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ManualResetEvent&lt;/span&gt;&lt;span style="color: black"&gt; evt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   39&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   40&lt;/span&gt;&lt;span style="color: black"&gt;         evt = &lt;/span&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ManualResetEvent&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;/span&gt;&lt;span style="color: blue"&gt;false&lt;/span&gt;&lt;span style="color: black"&gt;); &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   41&lt;/span&gt;&lt;span style="color: black"&gt;         locks.Add(evt); &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   42&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ThreadPool&lt;/span&gt;&lt;span style="color: black"&gt;.QueueUserWorkItem(&lt;/span&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WaitCallback&lt;/span&gt;&lt;span style="color: black"&gt;(SearchDailyMotion), (&lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="color: black"&gt;)(&lt;/span&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="color: black"&gt;[] { keyword, result, evt})); &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   43&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   44&lt;/span&gt;&lt;span style="color: black"&gt;         evt = &lt;/span&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ManualResetEvent&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;/span&gt;&lt;span style="color: blue"&gt;false&lt;/span&gt;&lt;span style="color: black"&gt;); &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   45&lt;/span&gt;&lt;span style="color: black"&gt;         locks.Add(evt); &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   46&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ThreadPool&lt;/span&gt;&lt;span style="color: black"&gt;.QueueUserWorkItem(&lt;/span&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WaitCallback&lt;/span&gt;&lt;span style="color: black"&gt;(SearchMetaCafe), (&lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="color: black"&gt;)(&lt;/span&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="color: black"&gt;[] { keyword, result, evt })); &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   47&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   48&lt;/span&gt;&lt;span style="color: black"&gt;         evt = &lt;/span&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ManualResetEvent&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;/span&gt;&lt;span style="color: blue"&gt;false&lt;/span&gt;&lt;span style="color: black"&gt;); &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   49&lt;/span&gt;&lt;span style="color: black"&gt;         locks.Add(evt); &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   50&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ThreadPool&lt;/span&gt;&lt;span style="color: black"&gt;.QueueUserWorkItem(&lt;/span&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WaitCallback&lt;/span&gt;&lt;span style="color: black"&gt;(SearchYouTube), (&lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="color: black"&gt;)(&lt;/span&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="color: black"&gt;[] { keyword, result, evt })); &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   51&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   52&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: green"&gt;//This will ensure that all the threads completes its search&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   53&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: #2b91af"&gt;EventWaitHandle&lt;/span&gt;&lt;span style="color: black"&gt;.WaitAll(locks.ToArray()); &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   54&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   55&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: blue"&gt;return&lt;/span&gt;&lt;span style="color: black"&gt; result; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   56&lt;/span&gt;&lt;span style="color: black"&gt;     } &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   57&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   58&lt;/span&gt;&lt;span style="color: black"&gt;     &lt;/span&gt;&lt;span style="color: blue"&gt;private&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;void&lt;/span&gt;&lt;span style="color: black"&gt; SearchDailyMotion(&lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="color: black"&gt; state) &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   59&lt;/span&gt;&lt;span style="color: black"&gt;     { &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   60&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="color: black"&gt;[] triplet = (&lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="color: black"&gt;[])state; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   61&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   62&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="color: black"&gt; keyword = (&lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="color: black"&gt;)triplet[0]; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   63&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;Video&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt; result = (&lt;/span&gt;&lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;Video&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt;)triplet[1]; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   64&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ManualResetEvent&lt;/span&gt;&lt;span style="color: black"&gt; evt = (&lt;/span&gt;&lt;span style="color: #2b91af"&gt;ManualResetEvent&lt;/span&gt;&lt;span style="color: black"&gt;)triplet[2]; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   65&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   66&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   67&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: green"&gt;//DailyMotion will searhed over here&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   68&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   69&lt;/span&gt;&lt;span style="color: black"&gt;         evt.Set(); &lt;/span&gt;&lt;span style="color: green"&gt;// Search is complete, so notify the parent thread&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   70&lt;/span&gt;&lt;span style="color: black"&gt;     } &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   71&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   72&lt;/span&gt;&lt;span style="color: black"&gt;     &lt;/span&gt;&lt;span style="color: blue"&gt;private&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;void&lt;/span&gt;&lt;span style="color: black"&gt; SearchMetaCafe(&lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="color: black"&gt; state) &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   73&lt;/span&gt;&lt;span style="color: black"&gt;     { &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   74&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="color: black"&gt;[] triplet = (&lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="color: black"&gt;[])state; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   75&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="color: black"&gt; keyword = (&lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="color: black"&gt;)triplet[0]; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   76&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;Video&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt; result = (&lt;/span&gt;&lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;Video&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt;)triplet[1]; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   77&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ManualResetEvent&lt;/span&gt;&lt;span style="color: black"&gt; evt = (&lt;/span&gt;&lt;span style="color: #2b91af"&gt;ManualResetEvent&lt;/span&gt;&lt;span style="color: black"&gt;)triplet[2]; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   78&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   79&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: green"&gt;//MetaCafe will be searched over here&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   80&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   81&lt;/span&gt;&lt;span style="color: black"&gt;         evt.Set(); &lt;/span&gt;&lt;span style="color: green"&gt;// Search is complete, so notify the parent thread&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   82&lt;/span&gt;&lt;span style="color: black"&gt;     } &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   83&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   84&lt;/span&gt;&lt;span style="color: black"&gt;     &lt;/span&gt;&lt;span style="color: blue"&gt;private&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;void&lt;/span&gt;&lt;span style="color: black"&gt; SearchYouTube(&lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="color: black"&gt; state) &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   85&lt;/span&gt;&lt;span style="color: black"&gt;     { &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   86&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="color: black"&gt;[] triplet = (&lt;/span&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;span style="color: black"&gt;[])state; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   87&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="color: black"&gt; keyword = (&lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&lt;span style="color: black"&gt;)triplet[0]; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   88&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;Video&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt; result = (&lt;/span&gt;&lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;Video&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt;)triplet[1]; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   89&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ManualResetEvent&lt;/span&gt;&lt;span style="color: black"&gt; evt = (&lt;/span&gt;&lt;span style="color: #2b91af"&gt;ManualResetEvent&lt;/span&gt;&lt;span style="color: black"&gt;)triplet[2]; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   90&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   91&lt;/span&gt;&lt;span style="color: black"&gt;         &lt;/span&gt;&lt;span style="color: green"&gt;// YouTube will be searched over here&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   92&lt;/span&gt;&lt;span style="color: black"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   93&lt;/span&gt;&lt;span style="color: black"&gt;         evt.Set(); &lt;/span&gt;&lt;span style="color: green"&gt;// Search is complete, so notify the parent thread&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   94&lt;/span&gt;&lt;span style="color: black"&gt;     } &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;   95&lt;/span&gt;&lt;span style="color: black"&gt; } &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background: white"&gt; &lt;/p&gt; &lt;p style="background: white"&gt;The whole thing has been done in four steps: &lt;/p&gt; &lt;p style="background: white"&gt; &lt;strong&gt;Step 1&lt;/strong&gt;: &lt;/p&gt; &lt;p style="background: white"&gt; We created few variables: &lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;div style="background: white"&gt;A Generic List of Video which holds the search result &lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="background: white"&gt;A Generic List of Locks which is actually ManualResetEvent class &lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="background: white"&gt;A ManualResetEvent class to instantiate for different search. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p style="background: white"&gt;&lt;strong&gt;Step 2&lt;/strong&gt;: &lt;/p&gt; &lt;p style="background: white"&gt;Starting each Search, this steps are repeated for the 3 different search: &lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;div style="background: white"&gt;We created an Instance ManualResetEvent class and Adds it in the locks list. ManualResetEvent is special class, which allows us to communicate with different threads by signaling. &lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="background: white"&gt;Next, we queue a Task in a ThreadPool passing the Keyword, The Result list where the search result will be appended by the child thread and ManualResetEvent. The ThreadPool class method QueueUserWorkItem only takes a WaitCallback delegate which only accepts a single argument of object type and that's way we creating array on the fly and putting these items in that array. When a task is queued in the ThreadPool, the ThreadPool picks a free thread from its pool fires the thread to run the assigned method in that thread. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p style="background: white"&gt;&lt;strong&gt;Step 3&lt;/strong&gt;:&lt;/p&gt; &lt;p style="background: white"&gt;Inside the Child Thread : &lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;div style="background: white"&gt;Cast back the argument to proper types. &lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="background: white"&gt;Search the Site. I have commnted this to make the code shorter &lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="background: white"&gt;Then call the set() method of the ManualResetEvent. By calling this method, we are sending signal to the parent thread that the thread has done its job. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p style="background: white"&gt;&lt;strong&gt;Step 4&lt;/strong&gt;: &lt;/p&gt; &lt;p style="background: white"&gt;The parent thread: &lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;div style="background: white"&gt;The Parent threads call the EventWaitHandle.WaitAll(). This ensures that the parent thread will wait until all the child threads complete its job. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p style="background: white"&gt;And We are Done! &lt;/p&gt; &lt;p style="background: white"&gt;&lt;strong&gt;Few Notes: &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;div style="background: white"&gt;It is not possible to access the HttpContext.Current from the Child Thread method which means it also not possible to access the Request, Response, Cache, Session etc. If you need any of these objects in the child thread method then you also have to pass it in the WaitCallback like we did in the above. &lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="background: white"&gt;Never Creates a New Thread alternatively use the Built in ThreadPool class. &lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="background: white"&gt;Queuing a Task does not ensure that it will started be instantly, it completely depends upon the current usage of the ThreadPool, if the ThreadPool is already saturated with previous tasks then there might be a chance that your application will perform poorly even comparing with the Single threaded approach. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a target="_blank" href="http://www.dotnetkicks.com/kick/?url=http://geekswithblogs.net/rashid/archive/2007/06/19/Utilize-ThreadPool-in-WebService.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://geekswithblogs.net/rashid/archive/2007/06/19/Utilize-ThreadPool-in-WebService.aspx" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113297"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113297" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/rashid/aggbug/113297.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kazi Manzur Rashid</dc:creator>
            <guid>http://geekswithblogs.net/rashid/archive/2007/06/19/Utilize-ThreadPool-in-WebService.aspx</guid>
            <pubDate>Tue, 19 Jun 2007 07:33:58 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rashid/comments/113297.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rashid/archive/2007/06/19/Utilize-ThreadPool-in-WebService.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/rashid/comments/commentRss/113297.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rashid/services/trackbacks/113297.aspx</trackback:ping>
        </item>
    </channel>
</rss>