Как правильно дожидаться в одном потоке пока другой поток не изменит значение переменной?
Заранее создаете var waitEvent = new ManualResetEvent(false);
В одном потоке, где нужна уже инициализированная переменнаяwaitEvent.Wait();
В другом:SomeVariable = new ...
waitEvent.Set();
На мой взгляд либо записать в файл или в оперативку, а там while-ом проверять, но это слегка идиотский способ. Общий смысл каким-то образом оповестить систему, что поток закончил работу и пора работать с ожидающим потоком.
Если провести аналогию на "деферы" яваскриптовые, то там бы это стало 3 потока. Сначала делается один, а запускаются потом второй (ожидающий), и третий (продолжаем действия по первому). А вот если они у вас друг другу переменные передают, тот тут я мыслю о рекурсии с периодическим запуском 1-2-1-2-1-2..., а может даже полную перестройку логики
Могу быть неправ.