C# .Net Framework 处理任务

C# .Net Framework Disposing of Tasks

我想知道为任务实施处置功能是否有任何好处。这会有什么不同吗?这会迫使内存更快地清理吗?

Task updateTask = UpdateRemoteAsync()
await updateTask;

VS

using (Task updateTask = UpdateRemoteAsync())
{
    await updateTask;
}

在大多数情况下不会,当您处理 Task 时,您正在处理他们分配的 WaitHandle,根据 Microsoft 的说法,自 .NET Framework 4.5 以来,async/await 功能, WaitAllWaitAny 根本不分配一个,除非你明确需要要求 IAsyncResult.AsyncWaitHandle.

延伸阅读:MS Dev Blog.