TryEnter always succeeds because you are always calling it on the same ( UI ) thread and Monitor is reentrant. Your MessageBox doesn't totally block the UI thread. It runs a partial message loop and one of the messages it processes is the Windows.Forms.Timer message. Therefore, when the next tick happens, your handler is run again from inside the MessageBox message loop. TryEnter succeeds because the UI thread already owns the lock and Monitor allows a thread to lock an object multiple times. Nick
---------------------------------- Be excellent to each other :)