I just finished up reading Win32 Multithreaded Programming by Mike Woodring and Aaron Cohen. It's a few years old but it was filled with all kinds of great insight. I actually met Mike a few years ago when I attended DevelopMentor's Guerrilla .NET class. The guy is a badass developer, and the book he and Aaron wrote is very good. The reason I bought it was to gather some techniques and leverage some ideas for use in .NET projects. Afterall, not everything is thread-safe! And as a former VB guy, I didn't have to worry about critical sections, mutexes, deadlocks, and other threading issues all that much in the past. :-)