C# 与Task.CompletedTask等效的ValueTask是什么?

C# 与Task.CompletedTask等效的ValueTask是什么?,c#,asynchronous,task-parallel-library,valuetask,C#,Asynchronous,Task Parallel Library,Valuetask,我正在实现IAsyncDisposable,这要求我返回ValueTask,但有时我的dispose方法与此无关。在这种情况下,我应该如何返回 目前,我正在返回新的ValueTask(Task.CompletedTask),这似乎是可行的,但由于valueTasks的目的是避免创建不必要的堆对象,我确信应该有一种更简单、更有效的方法。所有结构都有一个默认构造函数。的默认构造函数创建一个已完成的ValueTask: var completedValueTask = new ValueTask();

我正在实现
IAsyncDisposable
,这要求我返回
ValueTask
,但有时我的dispose方法与此无关。在这种情况下,我应该如何返回


目前,我正在返回新的ValueTask(Task.CompletedTask),这似乎是可行的,但由于valueTasks的目的是避免创建不必要的堆对象,我确信应该有一种更简单、更有效的方法。

所有结构都有一个默认构造函数。的默认构造函数创建一个已完成的
ValueTask

var completedValueTask = new ValueTask();
或者:

ValueTask completedValueTask = default;
.NET 5.0:
你可以使用。

谢谢-似乎很明显,我不知道为什么我没有想到这一点:-)@Andy就我所知,这一事实没有记录在案,尽管可能应该记录在案。这不是很明显。