C# 关于多线程/异步/并行编程的澄清

C# 关于多线程/异步/并行编程的澄清,c#,multithreading,asynchronous,C#,Multithreading,Asynchronous,我已经在网上阅读了许多关于多线程/异步/并行编程的文章,经常会遇到如下类似的陈述 写入文件时,即使同时有等待处理的请求,也不会使用CPU。这些系统的一般特征是响应时间长,CPU使用率低,即使在压力条件下也是如此。 在写入文件时,CPU是如何不被使用的 希望我的问题是清楚的。CPU正在等待硬件指示它已完成处理请求的操作,处理器没有将文件写入硬盘,这由IDE/SATA/RAID控制器处理。因为CPU正在等待磁盘的响应。磁盘是一个独立的单元,它通过串行总线(或旧磁盘的并行总线)与CPU通信。内部驱动器

我已经在网上阅读了许多关于多线程/异步/并行编程的文章,经常会遇到如下类似的陈述

写入文件时,即使同时有等待处理的请求,也不会使用CPU。这些系统的一般特征是响应时间长,CPU使用率低,即使在压力条件下也是如此。

在写入文件时,CPU是如何不被使用的


希望我的问题是清楚的。

CPU正在等待硬件指示它已完成处理请求的操作,处理器没有将文件写入硬盘,这由IDE/SATA/RAID控制器处理。

因为CPU正在等待磁盘的响应。磁盘是一个独立的单元,它通过串行总线(或旧磁盘的并行总线)与CPU通信。内部驱动器和外部驱动器之间的技术区别实际上主要在于它是在计算机机箱内部还是外部


一个数据包被发送到要写入的磁盘,然后CPU只能等待磁盘完成它的工作,并返回请求的操作状态。

基本上,当您“写入”文件时,您会将信息发送到硬盘驱动器(该位使用CPU)但是,您需要等待信息已被物理写入磁盘。此等待时间不使用CPU,但比前一个等待时间长得多。同样,在加载时,99%的时间都在等待硬盘从物理上获取信息。

如果CPU不执行写入磁盘的任务,那么谁会执行呢?这是我缺少的链接。@ckv:我对此做了一些澄清。这就是我想要的:“这由您的IDE/SATA/RAID控制器处理。”现在我想我明白了。