如何在后台线程上每秒执行一个方法,以免影响应用程序的性能 [英] How to execute a method every second on a background thread so it doesn't affect the performance of the app

查看:23
本文介绍了如何在后台线程上每秒执行一个方法,以免影响应用程序的性能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试每 30 秒访问一次我的数据库,但是,每当该方法执行时,我都可以清楚地看到应用程序的性能下降.

I am trying to access my database every 30 seconds, however, whenever the method executes I can clearly see a performance dip in the application.

到目前为止,这是我当前的代码:

So far this is my current code:

var timer = Timer()

override func viewDidLoad() {
    super.viewDidLoad()
    scheduledTimerWithTimeInterval()

}

func scheduledTimerWithTimeInterval(){
    timer = Timer.scheduledTimer(timeInterval: 30, target: self, selector: #selector(self.updateCounting), userInfo: nil, repeats: true)
}

@objc func updateCounting(){
    getDatabaseInfo()
}

我正在尝试做同样的事情,但我想在后台线程上执行 getDatabaseInfo() 方法,以便不影响应用程序的性能.

I am trying to do the same thing, except I would like to execute the getDatabaseInfo() method on a background thread so that the app's performance is not compromised.

推荐答案

使用 Grand Central Dispatch :

Use Grand Central Dispatch :

DispatchQueue.global(qos: .background).async {
    getDatabaseInfo()
}

这篇关于如何在后台线程上每秒执行一个方法,以免影响应用程序的性能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆