TaskCancelKit

TaskCancelKit 是一个 Swift 库,旨在简化可取消任务的管理,尤其适用于 iOS 和 macOS 应用程序中的异步操作。借助 TaskCancelKit,开发人员可以轻松取消正在进行的任务,防止产生不必要的副作用,并有效地管理资源。

特性

易于任务管理:通过简单的方法调用取消单个或所有任务。类型安全的任务标识符:利用 Swift 的类型系统来管理具有自定义标识符的任务。轻量高效:一种极简的方法,易于集成到任何项目中。

要求

安装

Swift Package Manager (Swift 包管理器)

您可以通过 Swift Package Manager 将 TaskCancelKit 添加到您的项目中,方法是将以下内容添加到您的 Package.swift 文件中

dependencies: [
    .package(url: "https://github.com/insub4067/TaskCancelKit.git", .upToNextMajor(from: "1.0.0"))
]

用法

创建取消袋 (Cancel Bag)

首先,创建一个 TaskCancelBag 的实例,您可以在其中存储您的任务。

import TaskCancelKit

private let cancelBag = TaskCancelBag<TaskID>()

存储任务

创建任务时,使用标识符将其存储在您的 cancelBag 中。

enum TaskID {
    case countThree
}

func executeAfterThreeSecond() {
    Task {
        try await Task.sleep(for: .seconds(3))
        print("Task Complete")
    }.store(in: cancelBag, id: .countThree)
}

取消任务

您可以单独取消任务,也可以一次性全部取消。

// Cancel a specific task
cancelBag.cancel(id: .countThree)

// Cancel all tasks
cancelBag.cancelAll()

示例

GitHub 仓库

贡献

我们欢迎对 TaskCancelKit 的贡献!请阅读我们的贡献指南,了解有关如何提出错误修复、功能以及提交 pull request 的详细信息。

许可证

TaskCancelKit 在 MIT 许可证下发布。 有关更多信息,请参见 LICENSE。