Swift Concurrency by Example 第3页
How to discard results in a task group 如何丢弃任务组中的结果-Stewed Noodles 资源

How to discard results in a task group 如何丢弃任务组中的结果

Swift has a special task group type called a discarding task group, which has a very specialized function: tasks that complete are automatically discarded and destroyed, ...
How to serialize parameterized tests with Swift Testing 如何使用 Swift Testing 序列化参数化测试-Stewed Noodles 资源

How to serialize parameterized tests with Swift Testing 如何使用 Swift Testing 序列化参数化测试

Swift Testing's parameterized tests allow us to send multiple values into a single test, and they'll be run in parallel for maximum performance. If you don't want this – if you wa...
XuX的头像-Stewed Noodles 资源烩之面大会员XuX1年前
320
Understanding actor initialization 了解 actor 初始化-Stewed Noodles 资源

Understanding actor initialization 了解 actor 初始化

Swift's actors run on their own executor most of the time, so they manage how and where their work is done. However, during the actor's initialization its executor isn't ready to t...
XuX的头像-Stewed Noodles 资源烩之面大会员XuX1年前
310
How to use continuations to convert completion handlers into async functions 如何使用 continuations 将完成处理程序转换为异步函数-Stewed Noodles 资源

How to use continuations to convert completion handlers into async functions 如何使用 continuations 将完成处理程序转换为异步函数

Older Swift code uses completion handlers for notifying us when some work has completed, and sooner or later you’re going to have to use it from an async function –&nbs...
XuX的头像-Stewed Noodles 资源烩之面大会员XuX1年前
310
Important: Do not use an actor for your SwiftUI data models 重要提示:请勿将角色用于 SwiftUI 数据模型-Stewed Noodles 资源

Important: Do not use an actor for your SwiftUI data models 重要提示:请勿将角色用于 SwiftUI 数据模型

Swift’s actors allow us to share data in multiple parts of our app without causing problems with concurrency, because they automatically ensure two pieces of code cannot...
XuX的头像-Stewed Noodles 资源烩之面大会员XuX1年前
300
How to loop over an AsyncSequence using for await 如何使用 for await 遍历 AsyncSequence-Stewed Noodles 资源

How to loop over an AsyncSequence using for await 如何使用 for await 遍历 AsyncSequence

You can loop over an AsyncSequence using Swift’s regular loop types, for, while, and repeat, but whenever you read a value from the async sequence you mus...
How to voluntarily suspend a task  如何自愿暂停任务-Stewed Noodles 资源

How to voluntarily suspend a task 如何自愿暂停任务

If you’re executing a long-running task that has few if any suspension points, for example if you’re repeatedly iterating over an intensive loop, you can call Task.yield()&n...
What is actor reentrancy and how can it cause problems? 什么是 actor 重入性,它如何导致问题?-Stewed Noodles 资源

What is actor reentrancy and how can it cause problems? 什么是 actor 重入性,它如何导致问题?

Actor-isolated functions are reentrant, which means it's possible for one piece of work to begin before a previous piece of work completes. This opens the possibility of subtle bug...
XuX的头像-Stewed Noodles 资源烩之面大会员XuX1年前
290
What calls the first async function? 什么调用第一个异步函数?-Stewed Noodles 资源

What calls the first async function? 什么调用第一个异步函数?

You can only call async functions from other async functions, because they might need to suspend themselves and everything that is waiting for them. This leads to a bit of a chicke...
XuX的头像-Stewed Noodles 资源烩之面大会员XuX1年前
0290
What’s the difference between Sequence, AsyncSequence, and AsyncStream? Sequence、AsyncSequence 和 AsyncStream 之间有什么区别?-Stewed Noodles 资源

What’s the difference between Sequence, AsyncSequence, and AsyncStream? Sequence、AsyncSequence 和 AsyncStream 之间有什么区别?

Swift provides several ways of receiving a potentially endless flow of data, allowing us to read values one by one, or loop over them using for, while, or similar.Swift ...