>>Use a worker thread when you want to perform a background task asynchronous to user input or any other message.
Sounds good

>>when you want to dedicate a message pump to one or more windows in your application.
Isn't that the same thing as "Use a GUI thread when you want to put the message pump for a window in a separate thread"?