LMMgr // Use GCD in loadDataModelsOnAppDelegate().

This commit is contained in:
ShikiSuen 2022-09-21 14:33:00 +08:00
parent f80c13331d
commit 2a22117bad
3 changed files with 46 additions and 27 deletions

View File

@ -51,6 +51,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele
NSUserNotificationCenter.default.deliver(userNotification)
}
LMMgr.loadDataModelsOnAppDelegate()
DispatchQueue.main.async {
LMMgr.initUserLangModels()
self.folderMonitor.folderDidChange = { [weak self] in

View File

@ -70,7 +70,12 @@ public enum LMMgr {
lm.loadLanguageModel(path: dataPath)
}
public static func loadDataModels() {
public static func loadDataModelsOnAppDelegate() {
let globalQuene = DispatchQueue.global(qos: .default)
var showFinishNotification = false
let group = DispatchGroup()
group.enter()
DispatchQueue.main.async {
if !Self.lmCHT.isCNSDataLoaded {
Self.lmCHT.loadCNSData(path: getBundleDataPath("data-cns"))
}
@ -89,23 +94,36 @@ public enum LMMgr {
if !Self.lmCHS.isSymbolDataLoaded {
Self.lmCHS.loadSymbolData(path: getBundleDataPath("data-symbols"))
}
group.leave()
}
if !Self.lmCHT.isLanguageModelLoaded {
showFinishNotification = true
NotifierController.notify(
message: NSLocalizedString("Loading CHT Core Dict...", comment: "")
)
group.enter()
globalQuene.async {
loadCoreLanguageModelFile(filenameSansExtension: "data-cht", langModel: &Self.lmCHT)
group.leave()
}
}
if !Self.lmCHS.isLanguageModelLoaded {
showFinishNotification = true
NotifierController.notify(
message: NSLocalizedString("Loading CHS Core Dict...", comment: "")
)
group.enter()
globalQuene.async {
loadCoreLanguageModelFile(filenameSansExtension: "data-chs", langModel: &Self.lmCHS)
group.leave()
}
}
group.notify(queue: DispatchQueue.main) {
if showFinishNotification {
NotifierController.notify(
message: NSLocalizedString("Core Dict loading complete.", comment: "")
)
}
if !Self.lmCHS.isLanguageModelLoaded {
NotifierController.notify(
message: NSLocalizedString("Loading CHS Core Dict...", comment: "")
)
loadCoreLanguageModelFile(filenameSansExtension: "data-chs", langModel: &Self.lmCHS)
NotifierController.notify(
message: NSLocalizedString("Core Dict loading complete.", comment: "")
)
}
}

View File

@ -177,7 +177,7 @@ class ctlInputMethod: IMKInputController {
default:
newInputMode = .imeModeNULL
}
LMMgr.loadDataModel(newInputMode)
// LMMgr.loadDataModel(newInputMode)
if inputMode != newInputMode {
UserDefaults.standard.synchronize()