События ManualResetEventSlim в C#
Класс ManualResetEventSlim сообщает ожидающим потокам, что можно продолжать. Метод Wait блокирует, пока другой поток не вызовет Set. После Set флаг остаётся поднятым, пока его явно не опустят.
Событие держит старт потока. Метка печатается после Set, поэтому поток не зависает на ожидании. Флаг после сигнала остаётся открытым:
using ManualResetEventSlim evt = new(false);
Thread w = new(() =>
{
evt.Wait();
Console.WriteLine("ok"); // выведет ok
});
w.Start();
evt.Set();
w.Join();
Запустите поток, который ждёт сигнал и затем выводит в консоль строку "ready". В главном потоке подайте сигнал и дождитесь завершения потока.