iOS / objective-c(++)相当于Windows I / O完成端口?

时间:2014-08-19 17:54:23

标签: ios objective-c .net objective-c++ io-completion-ports

假设我想实现一个异步加载文件的方法,并返回一些以文件内容为结果的任务。在.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) 
{    
    ??? 
}