是否存在类似标签的机制@MainActor
,我们可以在其中指定指定类所在的共享非主线程?
我希望能够设置类似的东西:
@AnimalsActor
final class Dog {
// ...
}
@AnimalsActor
final class Cat {
// ...
}
其中 Cat 和 Dog 的所有属性访问和功能调用都将由同一个参与者完成。
我所见过的解决方案需要定义一个参与者,然后从类中明确调用它,这意味着类和参与者之间频繁的上下文切换,而不是类已经处于参与者的上下文中。
你可以定义一个全局的 Actor。正如 Swift Evolution 提案中所说:
因此,您可以定义
AnimalsActor
如下:并且您的问题中概述的
Cat
内容Dog
将按照以下方式工作: