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.