> Cane someone compare Mutex, lock, Monitor, and when to use which one?
lock is just syntactic sugar for Monitor, which should usually be the
first port of call. Mutex is useful when you need a way of
synchronizing across different processes.
> And the concept of waiting query, ready query, Pulse, PulseAll, can someone
> explain a little bit?
See http://www.pobox.com/~skeet/csharp/threads
- although that doesn't cover "waiting query" and "ready query".

Signature
Jon Skeet - <skeet@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too