【发布时间】:2013-01-26 00:58:00
【问题描述】:
我的示例应用程序从 IPortableDeviceResources::GetStream() 函数中获取了一个 COM IStream 实例。我想使用这个 IStream 对象异步读取设备对象的内容。如何使用异步名字对象来做到这一点?
【问题讨论】:
我的示例应用程序从 IPortableDeviceResources::GetStream() 函数中获取了一个 COM IStream 实例。我想使用这个 IStream 对象异步读取设备对象的内容。如何使用异步名字对象来做到这一点?
【问题讨论】:
IStream 在设计上是同步的。我首先要问一下你的情况是什么需要它是异步的。
例如,如果想要异步数据流的原因是为了不阻塞 UI 线程,则可以在工作线程中执行 IStream 操作。
如果原因是您可以发出多个并行读取,MTP 1.0 设备不支持此功能,因为在驱动程序级别,请求仍将在单个全局 MTP 会话中按顺序处理。 MTP 2.0 支持多会话,允许多个并行连接到同一设备,但到目前为止,没有多少设备采用这种方式。市场上的大多数(如果不是全部)MTP 设备都是 MTP 1.0。
【讨论】: