C#:await 是否会自动释放 StreamReader 资源?

问题描述 投票:0回答:2

在这种情况下使用

using
模式有意义吗?或者
await
会自动处置该资源吗?

var payload = await new StreamReader(HttpContext.Request.Body).ReadToEndAsync();
c# .net async-await garbage-collection garbage
2个回答
0
投票

始终将流包装在

using() { ... }
try/finally
块中是有意义的,是的。

await
唯一做的就是将调用线程返回到主工作池并“等待”您调用的异步任务完成。


-3
投票

您正在使用await关键字通过StreamReader异步读取HttpContext.Request.Body的内容。这是在 C# 中处理异步 I/O 操作时的常见做法。您不需要添加 using 语句来显式处置 StreamReader。 wait 关键字将确保异步操作完成时完成必要的清理。

© www.soinside.com 2019 - 2024. All rights reserved.