Задать вопрос
@Quttar72
Изучаю asp.net core mvc

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

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

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

Похожие вопросы