Как правильно блокировать повторный запуск асинхронной функции ? - C#

Узнай цену своей работы

Формулировка задачи:

Допустим есть асинхронная функция, вызываемая по нажатию кнопки пользователем. Функция не быстрая, ходит по http Как можно запретить вызывать её дважды ? Достаточно для этого устанавливать какой нибудь флаг при входе в функцию, например IsLoading и если флаг установлен, вываливаться из функции ? Нормально это будет работать в многопоточном приложении ?

Решение задачи: «Как правильно блокировать повторный запуск асинхронной функции ?»

textual
Листинг программы
  1. static int _isLoading;
  2. void YourMethodSinglenton()
  3. {
  4.     if (Interlocked.CompareExchange(ref _isLoading, 1, 0) == 0)
  5.     {
  6.         // body
  7.         Interlocked.Exchange(ref _isLoading, 0);
  8.     }
  9. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы