我有一个UIButton
,其中有两个事件。 touchUpInside
和touchDown
。该按钮用于录音,因此可以顺序地多次触摸。发生touchDown
时,它确实准备并开始记录,而发生touchUpInside
时,它完成记录。
touchDown
命令在另一个线程中执行:
DispatchQueue.global(qos: .userInteractive).async {
//prepare and start voice recording
}
touchUpInside
命令在主线程中执行。
问题是我有一些在两个事件中都使用过的变量(发生比赛条件)。例如,在准备touchDown
事件内的记录器实例之前,发生touchUpInside
事件。那么如何控制比赛条件呢?我对DispatchGroup有点了解,但是我无法与他们一起解决这种情况。感谢您的帮助。