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 bool BindHandle(IntPtrosHandle
); public static void GetAvailableThreads(out intworkerThreads
, out intcompletionPortThreads
); public static void GetMaxThreads(out intworkerThreads
, out intcompletionPortThreads
); public static void GetMinThreads(out intworkerThreads
, out intcompletionPortThreads
); public static bool QueueUserWorkItem(WaitCallbackcallBack
); public static bool QueueUserWorkItem(WaitCallbackcallBack
, objectstate
); public static RegisteredWaitHandle RegisterWaitForSingleObject(WaitHandlewaitObject
, WaitOrTimerCallbackcallBack
, objectstate
, intmillisecondsTimeOutInterval
, boolexecuteOnlyOnce
); public static RegisteredWaitHandle RegisterWaitForSingleObject(WaitHandle ...
Get C# in a Nutshell, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.