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

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

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

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

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