nor*_*r0x 6 c# closures asynchronous async-await swift
我目前正在使用中的闭包和链接完成Swift。我非常熟悉and 的C#风格,因此我想知道如何将以下代码段从翻译为。asyncawaitC#Swift
public async Task SomeFunction(string inputString)
{
var first = await GetFirstVariableAsync(inputString);
var second = await GetSecondVariableAsync(first);
if (second == "some condition")
{
first = await GetFirstVariableAsync(inputString);
var second = await GetSecondVariableAsync(first);
}
}
Run Code Online (Sandbox Code Playgroud)
是否Swift具有类似的构造,例如await,以等待函数完成而不必嵌套多个完成块?
谢谢
如果我没记错的话,你要找的是:
串行调度队列:
串行队列(也称为私有调度队列)按照任务添加到队列的顺序一次执行一个任务。当前正在执行的任务在由调度队列管理的不同线程上运行(该线程可能因任务而异)。串行队列通常用于同步对特定资源的访问。您可以根据需要创建任意数量的串行队列,并且每个队列与所有其他队列同时运行。换句话说,如果您创建四个串行队列,每个队列一次仅执行一项任务,但最多仍可以同时执行四个任务,每个队列执行一个任务。有关如何创建串行队列的信息,请参阅创建串行调度队列。
斯威夫特3:
let serialQueue = DispatchQueue(label: "serialQueue")
serialQueue.sync {
print("running first task")
}
serialQueue.sync {
print("I will wait the first task and then I'll do my own task")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1692 次 |
| 最近记录: |