O'Reilly logo

C# in a Nutshell by Peter Drayton, Ted Neward, Ben Albahari

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Name

ThreadPool

Synopsis

Creating or destroying a thread takes a fair amount of work. Therefore, if you pool threads, your program executes more efficiently since you get rid of the overhead associated with creating and destroying threads. There is one thread pool per process. To queue work to execute by this pool of worker threads, call any of the ThreadPool static methods. QueueUserWorkItem() queues a delegate to execute when one of the pool’s threads becomes free. RegisterWaitForSingleObject() takes a WaitHandle and executes the specified method either when the WaitHandle is in the signaled state or when a time-out occurs. BindHandle() and UnsafeQueueUserWorkItem() are provided for compatibility with the Win32 API.

public sealed class ThreadPool {
// Public Static Methods
   public static method bool BindHandle(IntPtr osHandle);  
   public static method void GetAvailableThreads(
        out int workerThreads, 
        out int completionPortThreads);  
   public static method void GetMaxThreads(
        out int workerThreads, 
        out int completionPortThreads);  
   public static method bool QueueUserWorkItem(
        WaitCallback callBack);  
   public static method bool QueueUserWorkItem(
        WaitCallback callBack, object state);  
   public static method RegisteredWaitHandle RegisterWaitForSingleObject(
        WaitHandle waitObject, 
        WaitOrTimerCallback callBack, object state, 
        int millisecondsTimeOutInterval, 
        bool executeOnlyOnce);  
   public static method RegisteredWaitHandle RegisterWaitForSingleObject(
        WaitHandle waitObject, 
        WaitOrTimerCallback callBack ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required