SwiftyTask 1.0.1

SwiftyTask 1.0.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2018年4月
SPM支持 SPM

Albin CR 维护。



  • 作者
  • Albin CR

SwiftyTask

一个极端的队列系统,具有高性能,用于通过闭包管理应用程序中的所有任务

Task

Swift 3.0 Platforms iOS Xcode 8.0 Gemnasium Ratting license

在 GCD (Grand Central Dispatch) 上队列闭包的任务方法。

需求

  • iOS 10.0+
  • Swift 4.1+
  • Xcode 9.2+

安装

CocoaPods

Task可以通过CocoaPods安装。要在Podfile中安装它,只需添加以下行:

use_frameworks!

pod "SwiftyTask"

或者

use_frameworks!

pod 'SwiftyTask', git: 'https://github.com/Albinzr/SwiftyTask', :tag => '1.0.1'

Carthage

要使用Carthage将Task集成到您的Xcode项目中,请在Cartfile中指定它:

github "CR-Creations/SwiftyTask"

示例

基础

SwiftyTask.main {

    // main thread queue

    return "1"
    }.background { result in

         // background qos class thread queue
         print(result) 

         return "2"
    }.userInteractive { result in

         // userInteractive qos class thread queue
         print(result) 

         return "3"
    }.userInitiated { result in
         //userInitiated qos class thread queue
         print(result) 

         return "4"
    }.onDefault { result in
         // default qos class thread queue

         print(result)
         return "5"
    }.run(.Main) { result in

         // called at main thread queue
         print(result) 
         print("Process completion")
}

自定义队列

let queue = dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0)

SwiftyTask.custom(queue) {
    
    //customQueue

    return nil
    }.onDefault { result in

         //default qos class thread queue

         return result
    }.main { result in

         //main thread queue

         return result
    }.custom(customQueue) { result in
         
         // customQueue
         
         return result
    }.run()

之后

SwiftyTask.main {
    
    // main thread queue

    print("start after: \(Date().description)")

    return "1"
    }.after(seconds: 5) { result in

        // 5 seconds after the previous block
        //background qos class thread queue

        print(result)
        return "after 2: \(Date().description)"
    }.userInteractive { result in

        //userInteractive qos class thread queue

        print(result)
        return "after 3: \(Date().description)"
    }.after(Queue.Utility, seconds: 5) { result in

        //5 seconds after the previous block
        // called at utility qos class thread queue

        print(result) 
        return "after 4: \(Date().description)"
    }.run(.Main) { result in

        // last call main thread queue

        print(result) 
        print("after completion: \(Date().description)")
}

等待

SwiftyTask.main {

    //  main thread queue

    print("start wait: \(Date().description)")
    return "1"
    }.wait(seconds: 5).background { result in

        // 5 seconds after the previous block
        // background qos class thread queue

        print("wait 2: \(Date().description)")
        return result
    }.wait(seconds: 5).main { result in

        // 5 seconds after the previous block
        // main thread queue

        print("wait 3: \(Date().description)")
        return result
    }.run()

许可证

MIT许可证。更多详情请参阅LICENSE文件。