1

在 OSX 或 iOS 上,NSOperationQueue 对于调度异步任务非常有用。Windows上有类似的设施吗?

4

2 回答 2

2

Windows 有几个线程池 API。“旧线程池 API”更像是NSOperationQueue,但新代码推荐使用新线程池 API 。

于 2013-08-22T17:43:37.910 回答
0

与 Win32 最相似的 API 是线程池API。

来自MSDN

线程池应用程序编程接口 (API) 使用基于对象的设计。以下每个对象都由用户模式数据结构表示:

  • 池对象是一组可用于执行工作的工作线程。每个进程可以根据需要创建多个具有不同特征的隔离池。每个进程还有一个默认池。

  • 清理组与一组回调生成对象相关联。存在等待和释放作为每个清理组成员的所有对象的函数。这使应用程序无需跟踪它创建的所有对象。一个工作对象被分配给一个池,并且可选地分配给一个清理组。它可以被发布,从而导致池中的工作线程执行其回调。

  • 一个工作对象可以有多个未完成的职位;每个都会生成一个回调。发布操作不会因资源不足而失败。

  • 计时器对象控制回调的调度。每次计时器到期时,它的回调都会发布到它的工作池中。设置计时器不会因资源不足而失败。

  • 等待对象导致等待者线程在等待句柄上等待。等待满足或超时期限到期后,等待线程将等待对象的回调发布到等待的工作池。设置等待不会因资源不足而失败。

  • I/O 对象将文件句柄与线程池的 I/O 完成端口相关联。当异步 I/O 操作完成时,工作线程获取操作的状态并调用 I/O 对象的回调。

于 2013-08-22T17:41:58.130 回答