jjzjj

disposable

全部标签

c# - 使用 vs lambda

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。是否等价?publicstaticvoidUsing(thisTdisposable,Actionaction)whereT:IDisposable{try{action(disposable);}finally{disposable.Dispose();}}newSqlConnection("").Using(conn=>{});using(varconn=newSqlConnection("

c# - IDisposable 实现 - 'if (disposing)' 中应该包含什么

我一直在修复winforms应用程序中的一些内存泄漏问题,并注意到一些未明确处理的一次性对象(开发人员尚未调用Dispose方法)。Finalize方法的实现也无济于事,因为它没有进入if(disposing)子句。所有的静态事件注销和集合清除都放在了if(disposing)子句中。如果对象是一次性的,最好的做法是调用Dispose,但不幸的是,这种情况有时会发生如果有非托管对象、静态事件处理程序和一些托管集合需要在处置时清除。if(disposing)子句如何决定什么进什么出。Disposemethod.//Dispose(booldisposing)executesintwodi

c# - LINQ IEnumerable 扩展是否在其 IEnumerable 上调用 Dispose?

假设我已经编写了一个实现IEnumerable的类,并返回一个IEnumerator,它不仅仅是IDisposable的枚举器,但是在完成枚举后,由于拥有它需要Dispose()的托管资源,我是否可以相信只要我的枚举器正确,以下将Dispose()这些托管资源在其IDisposable实现中处理这些托管资源?return(newMyClass()).Select(x=>x);编辑:这个问题看起来与标记为类似它的一个模组相似,但它在语义上是不同的IMO(我在提出问题之前看到了它) 最佳答案 是的,您可以从LINQ方法内部对迭代器调用D

c# - 什么可能导致 WCF 中出现 "Cannot access a disposed object"错误?

我正在使用以下代码:privateWSHttpBindingws;privateEndpointAddressSrv_Login_EndPoint;privateChannelFactorySrv_LoginChannelFactory;privateSrv_Login.Srv_ILoginLoginService;Login是我的构造函数:publicLogin(){InitializeComponent();ws=newWSHttpBinding();Srv_Login_EndPoint=newEndpointAddress("http://localhost:2687/Srv_L

c# - 为什么 HttpWebResponse 上没有 Dispose 方法

HttpWebReponse实现了IDisposable接口(interface),但是为什么没有Dispose方法。它只包含Close方法。using模式是否仍可用于此类? 最佳答案 HttpWebResponseimplementsIDisposable接口(interface)显式。因此,只有当您将HttpWebResponse转换为IDisposable时,您才能调用Dispose。HttpWebResponse的Close方法在内部调用Dispose。HttpWebResponseresponse=//assignedfr

c# - 代码分析警告 CA2213 - 在 IDisposable 支持字段上调用 ​​Dispose()

想发布这个,即使我在写问题时想通了。将在下面发布答案。使用VS代码分析获取以下警告:WarningCA2213'DBConn'containsfield'DBConn.k__BackingField'thatisofIDisposabletype:'SqlConnection'.ChangetheDisposemethodon'DBConn'tocallDisposeorCloseonthisfield.但是我的代码确实在DBConn属性上调用了Dispose()。它不在后台吗?我还有其他类似的实例-我正在处理编译器不会抛出此警告的地方。这是下面的代码:usingSystem;usin

c# - 关于C#中Dispose()和析构函数的两个问题

我有一个关于如何使用Dispose()和析构函数的问题。阅读一些文章和MSDNdocumentation,这似乎是实现Dispose()和析构函数的推荐方式。但是我有两个关于这个实现的问题,你可以在下面阅读:classTesting:IDisposable{bool_disposed=false;protectedvirtualvoidDispose(booldisposing){if(!_disposed)//onlydisposeonce!{if(disposing){//Notindestructor,OKtoreferenceotherobjects}//performclea

c# - socket 的 Shutdown、Disconnect、Close 和 Dispose 到底是做什么的?

针对网络编程新手,很难找到关于这四种方法实际上的作用的简单解释。人们通常只是陈述他们认为在特定情况下关闭套接字的正确方法,而不是每个步骤背后发生的事情。遵循以人为本的哲学,你能解释一下Shutdown、Disconnect、Close和Dispose方法? 最佳答案 安answer在StackOverflow上让我觉得我终于有了一些理解。然后我去测试了一下,这是新手观点的总结。如果我错了,请纠正我,因为这是基于推理,而不是专业知识。关机Shutdown禁用Send和/或Receive方法,具体取决于提供的参数。它不会禁用底层协议(p

c# - 是否应该对 Dispose 方法进行单元测试?

我正在使用C#。是否建议对处置方法进行单元测试?如果是,为什么以及应该如何测试这些方法? 最佳答案 是的,但可能很难。Dispose实现中通常会发生两件事:非托管资源被释放。在这种情况下,很难验证调用的代码,例如Marshal.Release。一个可能的解决方案是注入(inject)一个可以进行处理的对象,并在测试期间将模拟传递给它。一些这样的效果:interfaceComObjectReleaser{publicvirtualRelease(IntPtrobj){Marshal.Release(obj);}}classClassW

java - 为什么在调用 setVisible(false) 和 dispose() 时调用的窗口/组件监听器不同?

我看到的区别是(在JDK1.7上运行):setVisible(false),invokescomponentHiddenbutnotwindowClosed(TheAPIstatesonlyondispose()soit'sOKevenifitirritatesme)但是dispose(),invokeswindowClosedbutnotcomponentHidden短期运行示例代码(MCVE):publicclassJDialogTestextendsJDialog{privatestaticfinallongserialVersionUID=1L;publicJDialogTes