Чӣ гуна метавон иҷрои амалиёти асинхрониро қатъ кард?
sobes.tech AI
Ҷавоб аз AI
Дар iOS одатан барои қатъ кардани амалиёти асинхронӣ ба усулҳои зерин такя мекунанд:
-
Бекор кардани вазифаи URLSession — агар амалиёти асинхронӣ бо дархости шабакавӣ алоқаманд бошад, метавонем усули
cancel()-ро дар объектURLSessionTaskфаро гирад. -
Истифодаи
DispatchWorkItem— ҳангоми кор бо GCD, шумо метавонедDispatchWorkItemэҷод кунед ваcancel()-ро барои кӯшиши қатъ кардани иҷрои он фаро гирад. -
Combine ва Swift Concurrency — дар Combine, шумо метавонед обуна (
AnyCancellable)-ро бекор кунед, ва дар Swift Concurrency (async/await), истифодаиTaskва фаро гирадcancel().
Масалан бо Task дар Swift Concurrency:
let task = Task {
for i in 1...10 {
try Task.checkCancellation() // Санҷиши бекоркунӣ
print(i)
try await Task.sleep(nanoseconds: 1_000_000_000)
}
}
// Баъдтар, барои бекор кардан:
task.cancel()
Муҳим аст, ки дар дохили амалиёти асинхронӣ санҷиши бекоркунӣ амалӣ карда шавад, вагарна амалиёт идома хоҳад ёфт.