Ваша проблема в том, что значение text
фиксируется, когда замыкание добавляется в очередь отправки, а не при выполнении замыкания.Это означает, что каждое отдельное назначение текста будет происходить в последовательности.
Одним из решений будет использование свойства, а не захваченной локальной переменной.Таким образом, для метки будет установлено текущее значение свойства, а не захваченное устаревшее значение:
self.messageText = someNewValue
DispatchQueue.main.async {
self.runningLabelView.text = self.messageText
}
Другой, возможно, лучший, подход будет заключаться в отправке меньшего количества обновлений, но вам нужно будет предоставить большеинформация.