代码之家  ›  专栏  ›  技术社区  ›  Florian Ldt

在旧设备上异步分派hqos.qosclass.background

  •  0
  • Florian Ldt  · 技术社区  · 7 年前

    我试着用这段代码:

    func simpleEscaping(test: String, complete: @escaping (_ testEscaped: String)->()) {
        complete(test)
    }
    
    func testBgAsync() {
        let backgroundQueue = DispatchQueue.global(qos: DispatchQoS.QoSClass.background)
        simpleEscaping(test: "Test") { (testEscaped) in
    
            backgroundQueue.async {
                sleep(1)
                print("Test escaped value is: \(testEscaped)")
            }
        }
    }
    
    testBgAsync()
    

    它在操场上按预期工作:

    “测试转义值为:测试”

    显示。

    我还在实际设备上尝试了此代码:

    • iPhonex v11.4版
    • iPhone5C v10.3.3版

    iphonex的结果相同:

    “测试转义值为:测试”

    对于iPhone5C:没有结果。尝试放置一些断点并看到 backgroundQueue.async {} 未运行。

    它是因为我的错误实现,还是因为设备版本的不同而有所不同?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Paulw11    7 年前

    .utility

    .background