【发布时间】:2021-02-11 10:02:25
【问题描述】:
我使用经验法则始终将实现 IDisposable 的所有内容放在 using 语句中。但是我开始使用 Tasks 并且无法添加这样的 using 语句:
var getResultTasks = new List<Task<HttpResponseMessage>>();
getResultTasks.Add(_client.GetAsync(requestUri));
getResultTasks.Add(_client.GetAsync(requestUri));
using var httpGetResponseMessages = await Task.WhenAll(getResultTasks);
上面写着:
'HttpResponseMessage[]': 在 using 语句中使用的类型必须是 隐式转换为 'System.IDisposable'。
我可以毫无问题地将它应用到单个实例:
using var testing = await _client.GetAsync("");
【问题讨论】:
-
你可以看看这个:Do I need to dispose of Tasks? 剧透警告:“不。不要费心处理你的任务。”
-
相关:Make using statement usable for multiple disposable objects(我自己在这个网站上的第一个问题)
标签: c# task-parallel-library using idisposable