【发布时间】:2014-08-19 17:54:22
【问题描述】:
假设我想实现一个异步加载文件的方法,并以文件的内容作为结果返回一些任务。在 .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)
{
???
}
【问题讨论】:
标签: ios objective-c .net objective-c++ io-completion-ports