Не выходит из цикла while C#

Код до этого работал, перестал после обновления на VS 2019.

Переменная:

public int sp_packetAvailable = 0;      // Флаг завершения приема пакета

Кусок зависающего кода:

while (sp_packetAvailable == 0)
{                                       
}

Стоит кнопка, которая открывает ком порт и принимает данные, если данные верные, ставится флаг:

sp_packetAvailable == 1

После этого бесконечный цикл прерывался и продолжалось выполнение кода. Но увы, данные получаю, флаг на 1 ставится, а цикл так и крутит. Повторюсь, перестало работать после перехода с 2017 на 2019.

введите сюда описание изображения


Ответы (1 шт):

Автор решения: alex bbs

AlexF прав, надо было использовать:

public volatile int sp_packetAvailable = 0;

→ Ссылка