The following are some thread pool APIs, which are applicable to Vista and earlier OS versions.
Feature |
Original API (XP) |
Current API |
Synch |
Registerwaitforsingleobject Unregisterwaitex |
Closethreadpoolwait Createthreadpoolwait Setthreadpoolwait Waitforthreadpoolwaitcallbacks |
Work |
Queueuserworkitem |
Closethreadpoolwork Createthreadpoolwork Submitthreadpoolwork Trysubmitthreadpoolcallback Waitforthreadpoolworkcallbacks |
Timer |
Createtimerqueue Createtimerqueuetimer Changetimerqueuetimer Deletetimerqueuetimer Deletetimerqueueex |
Closethreadpooltimer Createthreadpooltimer Isthreadpooltimerset Setthreadpooltimer Waitforthreadpooltimercallbacks |
I/O |
Bindiocompletioncallback |
Cancelthreadpoolio Closethreadpoolio Createthreadpoolio Startthreadpoolio Waitforthreadpooliocallbacks |
Clean-up group |
|
Closethreadpoolcleanupgroup Closethreadpoolcleanupgroupmembers Createthreadpoolcleanupgroup |
Pool |
|
Closethreadpool Createthreadpool Setthreadpoolthreadmaximum Setthreadpoolthreadminimum |
Callback Environment |
|
Destroythreadpoolenvironment Initializethreadpoolenvironment Setthreadpoolcallbackcleanupgroup Setthreadpoolcallbacklibrary Setthreadpoolcallbackpool Setthreadpoolcallbackrunslong |
Callback |
|
Callbackmayrunlong |
Callback clean up |
|
Disassociatecurrentthreadfromcallback Freelibrarywhencallbackreturns Leavecriticalsectionwhencallbackreturns Releasemutexwhencallbackreturns Releasesemaphorewhencallbackreturns Seteventwhencallbackreturns |