SwiftUI全局队列在线程1上运行
我正在尝试在我的移动应用程序中对一个非常大的数组进行排序。我使用的是SwiftUI,希望在用户点击按钮后对数组进行排序。这种排序大约需要3秒钟,所以我希望这种情况在主队列之外发生。但是,即使在调用要在SwiftUI全局队列在线程1上运行,swift,swiftui,grand-central-dispatch,Swift,Swiftui,Grand Central Dispatch,我正在尝试在我的移动应用程序中对一个非常大的数组进行排序。我使用的是SwiftUI,希望在用户点击按钮后对数组进行排序。这种排序大约需要3秒钟,所以我希望这种情况在主队列之外发生。但是,即使在调用要在全局异步块上执行的代码时,它似乎仍然会在线程1上执行,并降低我的UI速度。在此期间,CPU峰值达到100%,UI没有响应 按钮(“排序列表”){ DispatchQueue.global(qos:.background).async{ self.updateList() } } ... func u
全局
异步
块上执行的代码时,它似乎仍然会在线程1上执行,并降低我的UI速度。在此期间,CPU峰值达到100%,UI没有响应
按钮(“排序列表”){
DispatchQueue.global(qos:.background).async{
self.updateList()
}
}
...
func updateList(){
//我也试过在这里排队
变量排序:[OBJ]=[]
对于self.allObjs中的obj{
对于0中的i..请尝试以下显式重定向到主队列
注意:提供的代码越多,可以执行更好的分析
func updateList(){
//我也试过在这里排队
变量排序:[OBJ]=[]
对于self.allObjs中的obj{
对于0中的i..请尝试以下显式重定向到主队列
注意:提供的代码越多,可以执行更好的分析
func updateList(){
//我也试过在这里排队
变量排序:[OBJ]=[]
对于self.allObjs中的obj{
对于0中的i..您确定这部分代码符合您的要求吗
var sorted: [OBJ] = []
for obj in self.allObjs {
for i in 0..<self.selected.count {
...
let i = sorted.insertionIndexOf(obj, isOrderedBefore: self.sorter)
sorted.insert(obj, at: i)
}
}
var排序:[OBJ]=[]
对于self.allObjs中的obj{
对于0中的i..您确定这部分代码符合您的要求吗
var sorted: [OBJ] = []
for obj in self.allObjs {
for i in 0..<self.selected.count {
...
let i = sorted.insertionIndexOf(obj, isOrderedBefore: self.sorter)
sorted.insert(obj, at: i)
}
}
var排序:[OBJ]=[]
对于self.allObjs中的obj{
对于0中的i..这对我来说似乎是正确的,因此可能会发生其他事情(此代码中未显示)。这对我来说似乎是正确的,因此可能会发生其他事情(此代码中未显示)