Auto reset event

Доки не прийде сигнал інші не можуть писати в файл

Сигнал are.Set() можна дати і з main після затримки, що зруйнує послідовну роботу,

цю проблему вирішує Mutex

        // true - сигнал першому почати роботу

        static AutoResetEvent are = new AutoResetEvent(true);  

        static void Main(string[] args)

        {

            for (int i = 0; i < 5; i++)

            {

                // new Thread(Write).Start();

                Task.Run(() => Write());

            }

            Console.ReadKey();

        }

        public static void Write() {            

            are.WaitOne();   // заборонити доступ

            Console.WriteLine("START WRITING> " + Thread.CurrentThread.ManagedThreadId);

            Thread.Sleep(2000);

            Console.WriteLine("END WRITING " + Thread.CurrentThread.ManagedThreadId);

            are.Set();   // Сигнал, можна іншим потокам отримати доступ

        }

START WRITING> 10

END WRITING 10

START WRITING> 12

END WRITING 12

START WRITING> 11

END WRITING 11

START WRITING> 13

END WRITING 13

START WRITING> 14

END WRITING 14