假设我想实现一个异步加载文件的方法,并返回一些以文件内容为结果的任务。在.NET中,我可以说:
public async Task<byte[]> GetFileContentsAsync(string path)
{
using (var fs = File.OpenRead(path))
using (var ms = new MemoryStream())
{
await fs.CopyToAsync(ms);
return ms.ToArray();
}
}
在幕后,CopyToAsync
将利用IO完成端口来确保线程不会浪费空闲,等待IO。
Objective-C(++)中是否有等价物?我可以有效地执行以下合同吗?
ppl::task<StorageBufferPtr> GetFileContentsAsync(const shared_ptr<string> path)
{
???
}