mgrLM // Use multithread data-loading for non-core models.

This commit is contained in:
ShikiSuen 2022-05-04 17:09:27 +08:00
parent 4bb93b5932
commit 92995a38ba
1 changed files with 39 additions and 35 deletions

View File

@ -51,9 +51,26 @@ class mgrLangModel: NSObject {
} }
public static func loadDataModels() { public static func loadDataModels() {
DispatchQueue.global(qos: .userInitiated).async {
if !gLangModelCHT.isCNSDataLoaded() { if !gLangModelCHT.isCNSDataLoaded() {
gLangModelCHT.loadCNSData(path: getBundleDataPath("char-kanji-cns")) gLangModelCHT.loadCNSData(path: getBundleDataPath("char-kanji-cns"))
} }
if !gLangModelCHT.isMiscDataLoaded() {
gLangModelCHT.loadMiscData(path: getBundleDataPath("data-zhuyinwen"))
}
if !gLangModelCHT.isSymbolDataLoaded() {
gLangModelCHT.loadSymbolData(path: getBundleDataPath("data-symbols"))
}
if !gLangModelCHS.isCNSDataLoaded() {
gLangModelCHS.loadCNSData(path: getBundleDataPath("char-kanji-cns"))
}
if !gLangModelCHS.isMiscDataLoaded() {
gLangModelCHS.loadMiscData(path: getBundleDataPath("data-zhuyinwen"))
}
if !gLangModelCHS.isSymbolDataLoaded() {
gLangModelCHS.loadSymbolData(path: getBundleDataPath("data-symbols"))
}
}
if !gLangModelCHT.isDataModelLoaded() { if !gLangModelCHT.isDataModelLoaded() {
NotifierController.notify( NotifierController.notify(
message: String( message: String(
@ -67,17 +84,6 @@ class mgrLangModel: NSObject {
) )
) )
} }
if !gLangModelCHT.isMiscDataLoaded() {
gLangModelCHT.loadMiscData(path: getBundleDataPath("data-zhuyinwen"))
}
if !gLangModelCHT.isSymbolDataLoaded() {
gLangModelCHT.loadSymbolData(path: getBundleDataPath("data-symbols"))
}
// -----------------
if !gLangModelCHS.isCNSDataLoaded() {
gLangModelCHS.loadCNSData(path: getBundleDataPath("char-kanji-cns"))
}
if !gLangModelCHS.isDataModelLoaded() { if !gLangModelCHS.isDataModelLoaded() {
NotifierController.notify( NotifierController.notify(
message: String( message: String(
@ -91,16 +97,11 @@ class mgrLangModel: NSObject {
) )
) )
} }
if !gLangModelCHS.isMiscDataLoaded() {
gLangModelCHS.loadMiscData(path: getBundleDataPath("data-zhuyinwen"))
}
if !gLangModelCHS.isSymbolDataLoaded() {
gLangModelCHS.loadSymbolData(path: getBundleDataPath("data-symbols"))
}
} }
public static func loadDataModel(_ mode: InputMode) { public static func loadDataModel(_ mode: InputMode) {
if mode == InputMode.imeModeCHS { if mode == InputMode.imeModeCHS {
DispatchQueue.global(qos: .userInitiated).async {
if !gLangModelCHS.isMiscDataLoaded() { if !gLangModelCHS.isMiscDataLoaded() {
gLangModelCHS.loadMiscData(path: getBundleDataPath("data-zhuyinwen")) gLangModelCHS.loadMiscData(path: getBundleDataPath("data-zhuyinwen"))
} }
@ -110,6 +111,7 @@ class mgrLangModel: NSObject {
if !gLangModelCHS.isCNSDataLoaded() { if !gLangModelCHS.isCNSDataLoaded() {
gLangModelCHS.loadCNSData(path: getBundleDataPath("char-kanji-cns")) gLangModelCHS.loadCNSData(path: getBundleDataPath("char-kanji-cns"))
} }
}
if !gLangModelCHS.isDataModelLoaded() { if !gLangModelCHS.isDataModelLoaded() {
NotifierController.notify( NotifierController.notify(
message: String( message: String(
@ -124,6 +126,7 @@ class mgrLangModel: NSObject {
) )
} }
} else if mode == InputMode.imeModeCHT { } else if mode == InputMode.imeModeCHT {
DispatchQueue.global(qos: .userInitiated).async {
if !gLangModelCHT.isMiscDataLoaded() { if !gLangModelCHT.isMiscDataLoaded() {
gLangModelCHT.loadMiscData(path: getBundleDataPath("data-zhuyinwen")) gLangModelCHT.loadMiscData(path: getBundleDataPath("data-zhuyinwen"))
} }
@ -133,6 +136,7 @@ class mgrLangModel: NSObject {
if !gLangModelCHT.isCNSDataLoaded() { if !gLangModelCHT.isCNSDataLoaded() {
gLangModelCHT.loadCNSData(path: getBundleDataPath("char-kanji-cns")) gLangModelCHT.loadCNSData(path: getBundleDataPath("char-kanji-cns"))
} }
}
if !gLangModelCHT.isDataModelLoaded() { if !gLangModelCHT.isDataModelLoaded() {
NotifierController.notify( NotifierController.notify(
message: String( message: String(