I have this code:
myThreadTemp = Thread(target: self, selector: #selector(threadMain), object: nil)
 @objc func threadMain(data: AnyObject) {
        let runloop = RunLoop.current
        runloop.add(NSMachPort(), forMode: RunLoopMode.defaultRunLoopMode)
        while !Thread.current.isCancelled{
                //foreground
                DispatchQueue.main.async {[weak self] in
                self?.somemethod()
                self?.somevar = 1
                    print("tick")
                }
            if Thread.current.isCancelled {
            }
            Thread.sleep(forTimeInterval: 1.0)
        }
        runloop.run(mode: RunLoopMode.defaultRunLoopMode, before: NSDate.distantFuture)
    }
or I can just do this:
DispatchQueue.main.async {
                self.somemethod()
                self.somevar = 1
                    print("tick")
                }
I saw this:
Shall we always use [unowned self] inside closure in Swift
But was if @objc func is used?
 
     
    