我很担心,如果GC
将调用IDisposable
参数上的dispose方法传递给using() {}
语句中的对象创建。
HttpClient
和
HTTPHttpClientHandler
是IDisposable
个类。
var handler = new HttpClientHandler();
using (var client = new HttpClient(handler))
{
}//1
// 1此时,GC将在客户端上调用dispose()
方法。
是否意味着,dispose()
方法也将在handler
上调用?
答案 0 :(得分:0)
是
如果您查看sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:
的代码,则会调用HttpClient.Dispose()
执行以下操作:
base.Dispose()
其中this.handler.Dispose();
是handler
和HttpMessageHandler
的实例。
此外,如果您按原样运行代码,一旦使用块完成,您将看到HttpClientHandler : HttpMessageHandler
设置为true(使用Visual Studio中的调试器)。