【问题标题】:iOS / objective-c(++) equivalent to Windows I/O Completion Ports?iOS/objective-c(++) 相当于 Windows I/O 完成端口?
【发布时间】: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


    【解决方案1】:

    【讨论】:

    • 所以Windows I/O完成端口 ~= iOS dispatch I/O 我需要使用GCD,特别是dispatch_read / ' dispatch_write' 在大多数情况下。明白了,谢谢!
    猜你喜欢
    • 2011-02-17
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    相关资源
    最近更新 更多