@Quttar72
Изучаю asp.net core mvc

Правильно ли останавливать поток при помощи флага?

Есть переменная flag логического типа, инициализируемая значением false
Я устанавливаю ей значение true и с помощью Task.Run запускаю задачу, в которой имеется цикл while, выполняющийся пока значение flag == true
Если я захочу остановить задачу, то я могу просто занести в flag значение false. Это удобно, так как гарантированно задача не остановится посреди работы while. Вопрос в том, если запись в переменную flag попадет на момент чтения из нее, то как в этом случае программа поведет себя? И если это может привести к крашу программы, то каким объектом лучше реализовать данный функционал?
  • Вопрос задан
  • 55 просмотров
Пригласить эксперта
Ответы на вопрос 2
@forced
CancellationToken
IsCancellationRequired
Ответ написан
Комментировать
vabka
@vabka Куратор тега C#
Токсичный шарпист
В принципе ничего очень страшного не произойдёт, но лучше всё-таки через CancellationToken и CancellationTokenSource решать эту задачу)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы