MemoryStream ReadAsync 中的任务有什么用?

Bal*_*an웃 0 c# asynchronous task-parallel-library async-await

为什么MemoryStream.ReadAsync正在使用任务,即使代码没有任何asyncawait。我确信async在这里使用不会带来任何性能提升,因为它不是 I/O 操作,而是内存中操作。

看起来好像使用了一些缓存,但它们仍然调用同步读取方法

Read(buffer, offset, count)
Run Code Online (Sandbox Code Playgroud)

那么这里的任务有什么用呢?

Ste*_*ary 6

这里的任务有什么用呢?

基本类型StreamTAP。当异步方法添加到 BCL 时,流是一个明显的选择(异步代码非常适合 I/O 操作)。因此,决定将ReadAsync(和朋友)添加到基本Stream类型中。

但是,向后兼容性(一如既往)必须是优先考虑的事项。因此,基Stream类必须包含一个实现;不可能abstract。基Stream类将包装BeginRead/EndRead方法(如果派生类型实现APM),或者仅调用Read线程池线程

MemoryStream- 因为它知道它只是处理内存缓冲区 -覆盖此默认线程池行为以仅同步