Sobes.tech
Junior — Middle

Como pode cancelar a execução de uma tarefa agendada com DispatchWorkItem?

sobes.tech IA

Resposta da IA

Para cancelar a execução de uma tarefa agendada com DispatchWorkItem no iOS, utiliza-se o método cancel() no próprio objeto DispatchWorkItem.

Exemplo:

let workItem = DispatchWorkItem {
    print("Execução da tarefa")
}

DispatchQueue.global().async(execute: workItem)

// Cancelar a tarefa
workItem.cancel()

Se a tarefa ainda não começou, chamar cancel() impedirá a sua execução. Dentro do próprio DispatchWorkItem, pode-se verificar o estado de cancelamento com isCancelled e reagir de forma adequada, por exemplo:

let workItem = DispatchWorkItem {
    if workItem.isCancelled {
        return
    }
    // trabalho principal
}

Assim, o cancelamento da tarefa é feito através do método cancel() do objeto DispatchWorkItem.