Правильно ли останавливать поток при помощи флага?
Есть переменная flag логического типа, инициализируемая значением false
Я устанавливаю ей значение true и с помощью Task.Run запускаю задачу, в которой имеется цикл while, выполняющийся пока значение flag == true
Если я захочу остановить задачу, то я могу просто занести в flag значение false. Это удобно, так как гарантированно задача не остановится посреди работы while. Вопрос в том, если запись в переменную flag попадет на момент чтения из нее, то как в этом случае программа поведет себя? И если это может привести к крашу программы, то каким объектом лучше реализовать данный функционал?