My main concern is with the boolean flag... is it safe to use it without any synchronization? I\'ve read in several places that it\'s atomic (including the documentation).>
Booleans are atomic in C#: http://msdn.microsoft.com/en-us/library/aa691278(VS.71).aspx