【发布时间】:2024-04-17 03:40:02
【问题描述】:
当我异步执行 IO 操作时,我的应用程序线程不会被阻塞。
比如这个操作:
FileStream fs = new FileStream("...", ..., ..., ..., 4096, FileOptions.Asynchronous);
await fs.WriteAsync(bytes, 0, bytes.Length);
我知道,调用者线程将调用具有 OVERLAPPED 结构的 Write API。因此,当线程将 IRP 交给 IO 管理器时,他将被释放以进行其他工作。
但是,我找不到任何描述我需要的设备工作的信息。:
我想知道,当设备在我的异步 IO 操作上工作时,CPU 或某些线程是否与设备一起工作?
可能是某个线程或 CPU 控制设备执行?
或者,设备只需要一个命令,它应该执行并且设备可以在没有 CPU 和线程的情况下执行它?如果有人知道,请描述设备和 CPU 的交互。我想知道,什么时候设备不需要 CPU 和线程,如果那是真的。
谢谢
【问题讨论】:
标签: c# .net windows file-io operating-system