C# MemoryStream ReadAsync中task的用途是什么?

C# MemoryStream ReadAsync中task的用途是什么?,c#,asynchronous,async-await,task-parallel-library,C#,Asynchronous,Async Await,Task Parallel Library,为什么使用任务,即使代码没有任何async或wait。我确信在这里使用async不会带来任何性能改进,因为它不是一个I/O操作,而是一个内存操作 看起来有人在使用缓存,但他们仍然调用同步读取方法 Read(buffer, offset, count) 那么,任务在这里有什么用呢?它自己声明: [HostProtection(ExternalThreading = true)] [ComVisible(false)] public override Task<int> ReadAsy

为什么使用任务,即使代码没有任何
async
wait
。我确信在这里使用
async
不会带来任何性能改进,因为它不是一个I/O操作,而是一个内存操作

看起来有人在使用缓存,但他们仍然调用同步读取方法

Read(buffer, offset, count)
那么,任务在这里有什么用呢?

它自己声明:

[HostProtection(ExternalThreading = true)]
[ComVisible(false)]
public override Task<int> ReadAsync
这是一种通过基于任务的方法实现异步方法的新方法。它将返回已完成的任务,该任务在
等待
ed时将切换上下文并同步执行

在另一种情况下,它将使用默认实现,只需调用-提供异步模型的旧方法,使用带有回调模型的
BeginRead
/
EndRead
方法对。

它自己声明:

[HostProtection(ExternalThreading = true)]
[ComVisible(false)]
public override Task<int> ReadAsync
这是一种通过基于任务的方法实现异步方法的新方法。它将返回已完成的任务,该任务在
等待
ed时将切换上下文并同步执行

在另一种情况下,它将使用一个默认实现,该实现只需调用-提供异步模型的旧方法,使用带有回调模型的
BeginRead
/
EndRead
方法对

这里的任务有什么用

这场战争比那场战争早。当异步方法被添加到BCL中时,流是一个明显的选择(异步代码是I/O操作的理想选择)。因此,决定将
ReadAsync
(和friends)添加到基本
类型中

但是,向后兼容性(一如既往)必须是一个优先事项。因此,基本
类必须包含一个实现;它不能是抽象的。基本
类将(如果派生类型实现了),或者只是

MemoryStream
——因为它知道它只是在处理一个内存缓冲区

这里的任务有什么用

这场战争比那场战争早。当异步方法被添加到BCL中时,流是一个明显的选择(异步代码是I/O操作的理想选择)。因此,决定将
ReadAsync
(和friends)添加到基本
类型中

但是,向后兼容性(一如既往)必须是一个优先事项。因此,基本
类必须包含一个实现;它不能是抽象的。基本
类将(如果派生类型实现了),或者只是


MemoryStream
-因为它知道它只是处理一个内存缓冲区-。

基类用这个签名来定义它。基类用这个签名来定义它。