Последние пару дней я читал об async/await. Вчера я нашел это видео на 9 канале, что заставило задуматься о некоторых вещах. Рассмотрите слайд ниже.

Помимо проблем, которые решает Люциан Вищик, меня интересует назначение переменных. Допустим, мы изменили async void на async Task и добавили await перед вызовом SendData. Это позволяет нам получить поток, назначить переменную m_GetResponse, подождать две секунды и распечатать ее. Но что происходит с переменной? Он может быть написан другим потоком, чем читается. Нужен ли здесь какой-то барьер памяти, сделать переменную изменчивой или, возможно, что-то еще? Может ли оно по-прежнему быть нулевым, когда мы его печатаем?
Мобильная версия