今天发现了一篇将 ValueTask 与 Task 的区别讲的非常清楚的博文 —— Asynchronous Programming in .NET – Benefits and Tradeoffs of Using ValueTask
@dudu: 针对这个问题,微软终于出手了:Understanding the Whys, Whats, and Whens of ValueTask
是不是意味着 大部分 常规编程中, ValueTask<T> 的使用 频率 高于 Task<T>了,如果大多数时候我们都会等待方法的执行结果
ValueTask是Struct ,Task是Class,用途不同。如果只是同步方法返回简单的值类型,那么用 ValueTask是最好的 。然而需要异步等待执行,用到了 Await的时候,因为不知道await之后,是不是和执行await的是同一个线程,所以需要用基于stack的类型 Task来共享数据,这个时候只能用Task。