DekGenius.com
[ Team LiB ] Previous Section Next Section

ThreadPoolCF 1.0

System.Threading (mscorlib.dll)sealed class

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 bool BindHandle(IntPtr osHandle);
   public static void GetAvailableThreads(out int workerThreads, out int completionPortThreads);
   public static void GetMaxThreads(out int workerThreads, out int completionPortThreads);
   public static void GetMinThreads(out int workerThreads, out int completionPortThreads);
   public static bool QueueUserWorkItem(WaitCallback callBack);
   public static bool QueueUserWorkItem(WaitCallback callBack, object state);
   public static RegisteredWaitHandle RegisterWaitForSingleObject(WaitHandle waitObject,
       WaitOrTimerCallback callBack, object state, int millisecondsTimeOutInterval, bool executeOnlyOnce);
   public static RegisteredWaitHandle RegisterWaitForSingleObject(WaitHandle waitObject,
       WaitOrTimerCallback callBack, object state, long millisecondsTimeOutInterval, bool executeOnlyOnce);
   public static RegisteredWaitHandle RegisterWaitForSingleObject(WaitHandle waitObject,
       WaitOrTimerCallback callBack, object state, TimeSpan timeout, bool executeOnlyOnce);
   public static RegisteredWaitHandle RegisterWaitForSingleObject(WaitHandle waitObject,
       WaitOrTimerCallback callBack, object state, uint millisecondsTimeOutInterval, bool executeOnlyOnce);
   public static bool SetMinThreads(int workerThreads, int completionPortThreads);
   public static bool UnsafeQueueUserWorkItem(WaitCallback callBack, object state);
   public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(WaitHandle waitObject,          
       WaitOrTimerCallback callBack, object state, int millisecondsTimeOutInterval, bool executeOnlyOnce);
   public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(WaitHandle waitObject,   
       WaitOrTimerCallback callBack, object state, long millisecondsTimeOutInterval, bool executeOnlyOnce);
   public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(WaitHandle waitObject,        
       WaitOrTimerCallback callBack, object state, TimeSpan timeout, bool executeOnlyOnce);
   public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(WaitHandle waitObject,
       WaitOrTimerCallback callBack, object state, uint millisecondsTimeOutInterval, bool executeOnlyOnce);
}
    [ Team LiB ] Previous Section Next Section