Есть объект ManualResetEvent.
В одном ("первом") потоке при одних условиях ему может делаться Set, а в другом ("втором") потоке — Reset.
Вопрос в следующем. Надо ли синхронизировать доступ к ManualResetEvent при доступе к нему из разных потоков?
Ведь возможна следующая ситуация. Пусть N каких-то "других" потоков ждут на этом ивенте (ManualresetEvent.WaitOne).
Пусть "первый" поток делает ManualResetEvent.Set чтобы "отпустить" все N ждущих потоков.
А в следующий квант процессорного времени "второй" поток делает этуму же ивенту ManualResetEvent.Reset.
Не получится ли так, что действие "второго" потока полностью или частично "отменит" действие "первого", т.е. не все N ждущих потоков будут освобожденны (или вообще ни один из них) когда "первый" поток вызвал Set?