我看到一些代码使用CancellationTokenRegistration
的using
子句和Cancellation.Register
:
using (CancellationTokenRegistration ctr = token.Register(() => wc.CancelAsync()))
{
await wc.DownloadStringAsync(new Uri("http://www.hamster.com"));
}
我明白你应该确保Dispose
一个IDisposable
,但为什么它需要实现IDisposable
?它有哪些资源需要释放?它唯一具备的方法是关于相等性的。
如果不进行Dispose
,会发生什么?会泄漏什么?
IDisposable.Dispose
的存在是为了清理资源,还是为了确保需要完成的任务得以完成(资源清理是“必要操作”中占主导地位的类型之一,但并不是唯一的类型)。 - supercat