草庐IT

disposing

全部标签

c# - 在 Dispose() 中设置 obj = null(Nothing) 有什么意义吗?

在Dispose()方法中将自定义对象设置为null(VB.NET中的Nothing)是否有意义?这可以防止内存泄漏还是没用?!让我们考虑两个例子:publicclassFoo:IDisposable{privateBarbar;//standardcustom.NETobjectpublicFoo(Barbar){this.bar=bar;}publicvoidDispose(){bar=null;//anysense?}}publicclassFoo:RichTextBox{//thiscouldbealso:GDI+,TCPsocket,SQlConnection,other"h

c# - 在 Dispose() 中设置 obj = null(Nothing) 有什么意义吗?

在Dispose()方法中将自定义对象设置为null(VB.NET中的Nothing)是否有意义?这可以防止内存泄漏还是没用?!让我们考虑两个例子:publicclassFoo:IDisposable{privateBarbar;//standardcustom.NETobjectpublicFoo(Barbar){this.bar=bar;}publicvoidDispose(){bar=null;//anysense?}}publicclassFoo:RichTextBox{//thiscouldbealso:GDI+,TCPsocket,SQlConnection,other"h

c# - 为什么我需要 Dispose 一个 System.Net.Mail.MailMessage 实例?

它分配了哪些需要处置的非托管资源?它不只是一个简单的托管数据数组吗?那么为什么要处置? 最佳答案 邮件消息有附件->附件是流->流将被处理。MailMessage反编译后的Dispose方法如下:protectedvirtualvoidDispose(booldisposing){if(disposing&&!this.disposed){this.disposed=true;if(this.views!=null){this.views.Dispose();}if(this.attachments!=null){this.atta

c# - 为什么我需要 Dispose 一个 System.Net.Mail.MailMessage 实例?

它分配了哪些需要处置的非托管资源?它不只是一个简单的托管数据数组吗?那么为什么要处置? 最佳答案 邮件消息有附件->附件是流->流将被处理。MailMessage反编译后的Dispose方法如下:protectedvirtualvoidDispose(booldisposing){if(disposing&&!this.disposed){this.disposed=true;if(this.views!=null){this.views.Dispose();}if(this.attachments!=null){this.atta

c# - "Object can be disposed of more than once"错误

当我对以下代码块运行代码分析时,我收到此消息:对象“stream”可以在方法“upload.Page_Load(object,EventArgs)”中处理多次。为避免生成System.ObjectDisposedException,您不应对一个对象多次调用Dispose。using(varstream=File.Open(newFilename,FileMode.CreateNew))using(varreader=newBinaryReader(file.InputStream))using(varwriter=newBinaryWriter(stream)){varchunk=ne

c# - "Object can be disposed of more than once"错误

当我对以下代码块运行代码分析时,我收到此消息:对象“stream”可以在方法“upload.Page_Load(object,EventArgs)”中处理多次。为避免生成System.ObjectDisposedException,您不应对一个对象多次调用Dispose。using(varstream=File.Open(newFilename,FileMode.CreateNew))using(varreader=newBinaryReader(file.InputStream))using(varwriter=newBinaryWriter(stream)){varchunk=ne

c# - 是否应该让 IDisposable.Dispose() 安全地多次调用?

IDisposable的实现是否应该使Dispose()可以安全地多次调用?或者相反?大多数.NETFramework类采用什么方法?具体来说,多次调用System.Data.Linq.DataContext.Dispose()是否安全?我问的原因是因为我想知道是否需要这种额外的保护:publicoverridevoidDispose(booldisposing){//Extraprotection...if(this.obj!=null){this.obj.Dispose();this.obj=null;}//Versussimply...this.obj.Dispose();bas

c# - 是否应该让 IDisposable.Dispose() 安全地多次调用?

IDisposable的实现是否应该使Dispose()可以安全地多次调用?或者相反?大多数.NETFramework类采用什么方法?具体来说,多次调用System.Data.Linq.DataContext.Dispose()是否安全?我问的原因是因为我想知道是否需要这种额外的保护:publicoverridevoidDispose(booldisposing){//Extraprotection...if(this.obj!=null){this.obj.Dispose();this.obj=null;}//Versussimply...this.obj.Dispose();bas

c# - .Disposing StreamWriter 是否关闭底层流?

StreamWriter.Close()表示它还关闭了StreamWriter的底层流。StreamWriter.Dispose怎么样?Dispose是否也处理和/或关闭底层流 最佳答案 StreamWriter.Close()只是在引擎盖下调用StreamWriter.Dispose(),因此它们做的事情完全相同。StreamWriter.Dispose()会关闭底层流。Reflector是你问这样问题的friend:) 关于c#-.DisposingStreamWriter是否关闭底

c# - .Disposing StreamWriter 是否关闭底层流?

StreamWriter.Close()表示它还关闭了StreamWriter的底层流。StreamWriter.Dispose怎么样?Dispose是否也处理和/或关闭底层流 最佳答案 StreamWriter.Close()只是在引擎盖下调用StreamWriter.Dispose(),因此它们做的事情完全相同。StreamWriter.Dispose()会关闭底层流。Reflector是你问这样问题的friend:) 关于c#-.DisposingStreamWriter是否关闭底