Как предотвратить состояние гонки внутри UIButton touchDown и touchUpInside? - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть UIButton с двумя событиями.touchUpInside и touchDown.Кнопка используется для записи голоса, поэтому ее можно нажимать несколько раз подряд.Когда touchDown произошло, он готовится и начинает запись, а когда touchUpInside завершает запись.touchDown команды выполняются в другом потоке:

DispatchQueue.global(qos: .userInteractive).async {
//prepare and start voice recording
}

touchUpInside команды выполняются в основном потоке.Проблема в том, что у меня есть некоторые переменные, которые используются в обоих событиях (произошло состояние гонки).Например, перед подготовкой экземпляра регистратора внутри события touchDown происходит событие touchUpInside.Так как же контролировать состояние гонки?Я немного знаю о DispatchGroup, но я не могу справиться с этой ситуацией с ними.Спасибо за помощь.

...