Sobes.tech
Junior — Middle

Pode explicar a finalidade e o uso do DispatchQueue.global em Swift?

sobes.tech IA

Resposta da IA

O DispatchQueue.global em Swift é utilizado para executar tarefas numa fila de fundo, sem bloquear a fila principal (UI). Isto permite realizar operações intensivas em recursos (por exemplo, carregar dados, processar ficheiros) de forma assíncrona, garantindo a responsividade da interface.

DispatchQueue.global() devolve uma fila global com um nível de prioridade (QoS) definido, por exemplo:

  • .userInteractive — para tarefas que afetam a UI e requerem resposta imediata.
  • .userInitiated — para tarefas iniciadas pelo utilizador que devem ser concluídas rapidamente.
  • .utility — para tarefas de fundo prolongadas.
  • .background — para tarefas de baixa prioridade.

Exemplo de uso:

DispatchQueue.global(qos: .background).async {
    // Operação longa, por exemplo, carregar dados
    let data = fetchDataFromNetwork()

    DispatchQueue.main.async {
        // Atualizar a UI no thread principal
        self.updateUI(with: data)
    }
}

Assim, DispatchQueue.global ajuda a gerir eficientemente a multitarefa e a manter o funcionamento fluido da aplicação.