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
功能, WaitAll
和 WaitAny
根本不分配一个,除非你明确需要要求 IAsyncResult.AsyncWaitHandle
.
延伸阅读:MS Dev Blog.
我想知道为任务实施处置功能是否有任何好处。这会有什么不同吗?这会迫使内存更快地清理吗?
Task updateTask = UpdateRemoteAsync()
await updateTask;
VS
using (Task updateTask = UpdateRemoteAsync())
{
await updateTask;
}
在大多数情况下不会,当您处理 Task
时,您正在处理他们分配的 WaitHandle
,根据 Microsoft 的说法,自 .NET Framework 4.5 以来,async/await
功能, WaitAll
和 WaitAny
根本不分配一个,除非你明确需要要求 IAsyncResult.AsyncWaitHandle
.
延伸阅读:MS Dev Blog.