class ViewController { class Task { var param: Int = 3 func run() { print(param) } } let pq = DispatchQueue(label: "pq") var task: Task? func viewDidLoad() { let task = Task() self.task = task pq.startBindingLoop(task) { $0.run() } } func viewWillDisappear() { task = nil // stop task } }