异步 I/O 是单个线程同时管理多个 I/O 请求的有效手段。 服务器上的异步 RPC 实现 RPC 请求的类似目的。 在 Windows Vista 之前的 Windows 版本中,不建议使用异步 RPC 从服务器过程发布异步 I/O 请求。 但是,在 Windows Vista 和更高版本的 Windows 中,异步 RPC 支持与 I/O 完成端口关联的异步 I/O 请求。
在 Windows Vista 之前,异步远程过程调用可能会在异步 I/O 请求完成之前完成。 异步调用完成后,如果 RPC 运行时确定其有足够的线程可用于为预期的工作负荷提供服务,则其线程可能会终止。 系统将所有 I/O 请求绑定到启动它们的线程。 如果线程终止,则中止该线程上挂起的任何 I/O 请求。 挂起的 I/O 请求不能移动到另一个线程。
因此,面向 Windows Vista 之前 Windows 版本的应用程序设计器可以在服务器过程中使用同步 I/O,或者可以将涉及异步 I/O 的所有请求转发到应用程序管理的线程池上执行的过程。 Windows API 提供用于线程池管理的函数。 请参阅 进程和线程函数。