If you plan to use SwitchToThread inside a function that is going to be called heavily, and your program is going to run on Windows 2003 server (whatever flavor), you better be careful. SwitchToThread executes painfully slow on w2003. My benchmarks show that a program running under Windows XP can call a function that performs a useful job and has SwitchToTherad on it, 40 million times in less than 2 minutes, while the same process (running on the same hardware) will take almost 40 minutes on Windows 2003.