gpt4 book ai didi

c# - 我应该如何将返回非泛型任务的函数转换为 ValueTask?

转载 作者:太空狗 更新时间:2023-10-29 20:29:51 25 4
gpt4 key购买 nike

我正在编写一些在内存中构建缓冲区然后将其清空到 TextWriter 中的代码当缓冲区填满时。大多数时候,角色会直接进入缓冲区(同步)但偶尔(每 4kb 一次)我需要调用 TextWriter.WriteAsync .

the System.Threading.Tasks.Extensions package似乎只有一个 ValueTask<T> 结构,并且没有非泛型 ValueTask (没有类型参数)。为什么没有ValueTask ,如果我需要转换返回非泛型的方法,我应该怎么做 Task (即 void 方法的异步等价物)到 ValueTask

最佳答案

在黑暗中拍摄,但我认为这是因为 Task.CompletedTask 对于大多数非通用案例来说已经足够了。

一种思考方式ValueTask<T>作为 Task<T> 的联合和 T (分别针对异步和同步情况)。因此,一个非通用的 ValueTask将是 Task 的联合和...没什么,所以只是一个Task .

我想不出非泛型 ValueTask 的情况与缓存一个已经完成的 Task 实际上是不同的(这就是 Task.CompletedTask 是什么),尽管我很想了解任何内容。

关于c# - 我应该如何将返回非泛型任务的函数转换为 ValueTask?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48935667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com