If you need to make variables volatile, something is wrong with the synchronization, and volatile is the wrong fix (especially on a bit field where updates can't be atomic). What is this supposed to fix?
the volatile is no longer of use (sync is made with an event), so you can safely remove the volatile keyword here A+