由于CPU时间超出限制,杀死了CoreData后台线程

时间:2019-12-17 19:15:08

标签: core-data background-process watchos cpu-time

我的手表扩展程序使用以下代码(缩短后的代码)在后台线程中从coreData获取许多项目:

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import vuetify from './plugins/vuetify';

Vue.config.productionTip = false

new Vue({
  el:'#app',
  router,
  store,
  vuetify,
  render: h => h(App)
}).$mount('#app')

此代码崩溃并显示以下日志:

    coreDataSerialQueue.async {
        backgroundManagedContext.performAndWait {
            …
            let buyItemFetchRequest: NSFetchRequest<CDBuyItem> = CDBuyItem.fetchRequest()
            …
            do {
                let cdShoppingItems: [CDBuyItem] = try backgroundManagedContext.fetch(buyItemFetchRequest)
                …
                return
            } catch let error as NSError {
                …
                return
            }
        }
    }

显然,这花费了太长时间。

我的问题:

  1. coreData后台线程有时间限制吗?
  2. 如果是这样,如何修改我的代码以避免它?

0 个答案:

没有答案