你应该在HttpClient响应对象上调用dispose吗?

时间:2016-10-27 09:22:45

标签: c#

.as-console-wrapper { max-height: 100% !important; top: 0; }未被处理或销毁,因为它在呼叫之间重复使用。

HttpClient

是否需要将response.Content复制到另一个位置,然后通过public async Task<HttpContent> DoSomething() { var response = await _httpClient.PutAsync(url, content); return response.Content; } 手动处理HttpContent的响应?如果是这样,为什么或为什么不呢?

2 个答案:

答案 0 :(得分:2)

一般规则是:始终在实现Dispose的对象上调用IDisposable。你总是希望这样做的原因是因为你永远不知道实现是否需要处理一些资源。

正如您所见in the source,它确实处理了实际的流,因此您确实应该将其丢弃。

您可能希望在接收方法中执行此操作。无需复制结果并立即调用dispose。

您可以这样称呼它,就像您以前一样:

using (var r = await DoSomething())
{
}

答案 1 :(得分:2)

当我使用.net平台时,我总是应用这条规则:当一个对象实现IDisposable界面时,我很快就会使用我称之为Dispose()的对象。 为了不忘记致电Dispose(),我曾经使用using statement