//Для блокировки текущего потока и разблокировки его из другого потока
//необходимо инициализировать переменную
public static AutoResetEvent autoEvent = new AutoResetEvent(false);
//Но так инициализировать ее, что бы она была доступна в двух потоках:
//В том, в котором происходит блокировка и в том, откуда мы должны разблокировать поток
//Для блокировки текущего потока
//В этом случае поток будет ждать до тех пор, пока его не разблокируют из другого потока
autoEvent.WaitOne();
//Для разблокировки потока
autoEvent.Set();