Is sending\posting messages the preferred way to communicating between threads ? I've read about using events and global variables but not convinced thats a good option.

What if it's a worker thread that has no message pump ?

Im very keen to learn more about multithreading so any article\ tutorial anyone can recommend is more than welcome.