Как правильно блокировать повторный запуск асинхронной функции ? - C#
Формулировка задачи:
Допустим есть асинхронная функция, вызываемая по нажатию кнопки пользователем.
Функция не быстрая, ходит по http
Как можно запретить вызывать её дважды ? Достаточно для этого устанавливать какой нибудь флаг при входе в функцию, например IsLoading и если флаг установлен, вываливаться из функции ? Нормально это будет работать в многопоточном приложении ?
Решение задачи: «Как правильно блокировать повторный запуск асинхронной функции ?»
textual
Листинг программы
static int _isLoading; void YourMethodSinglenton() { if (Interlocked.CompareExchange(ref _isLoading, 1, 0) == 0) { // body Interlocked.Exchange(ref _isLoading, 0); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д