草庐IT

idisposable

全部标签

c# - 装饰器和 IDisposable

我有一个DbContext的子类publicclassMyContext:DbContext{}我有一个围绕MyContext的IUnitOfWork抽象,它实现了IDisposable以确保像MyContext这样的引用是在适当的时候处理掉publicinterfaceIUnitOfWork:IDisposable{}publicclassUnitOfWork:IUnitOfWork{privatereadonlyMyContext_context;publicUnitOfWork(){_context=newMyContext();}~UnitOfWork(){Dispose(fa

Windows 服务实现 IDisposable - 这是不好的做法吗?

我遇到过这段代码:publicclassServiceLauncher2:ServiceBase,IDisposable然后是://////Disposesthecontrollers/////Thisisdeclarednewasopposedtooverridebecausethebaseclasshastobeableto//callitsownDispose(bool)methodandnotthisone.Wecouldjustaseasilyname//thismethodsomethingdifferent,butkeepingitDisposeisjustasvalid

c# - 为什么 TcpListener 没有实现 IDisposable

为了更好地理解.NET网络部分的工作原理,我将浏览TcpListener(Documentation,ReferenceSource)类的引用源。引起我注意的是,它拥有实现IDisposable(Socket)的对象,但本身并未实现IDisposable。这是有原因的吗? 最佳答案 因为当您使用基于IPEndPoint的constructor时,TcpListener不拥有套接字。如果您计划重用上述IPEndPoint对象,则处理上述套接字将是非常粗鲁的 关于c#-为什么TcpListe

java - Java中的IDisposable隐喻?

作为一名接触.NET的Java开发人员,我想了解IDisposable接口(interface)。有人可以尝试解释一下这个以及它与Java中发生的事情有何不同吗?谢谢。 最佳答案 我写了一个detailedseriesofarticlesonIDisposable.这里的基本思想是,有时您确实需要确定性地处理资源。IDisposable提供了这种机制。例如,假设您在窗口中有一个控件。创建时,它会在内部创建一个窗口句柄(HWND)。当您从Window中删除该控件并且不再使用该控件时,该控件将符合垃圾收集条件-但它不会立即被收集。事实上

c# - 我需要在 LINQ 查询后强制 Dispose 吗?

我的DBA说打开的连接太多了,他认为是我在.net中的代码让它们保持打开状态。我首先使用LINQ查询和EF代码。示例方法:publicListGetStuff(){vardb=newDBContext();varresults=db.stuff.toList();returnresults;}完成后是否需要处理数据库变量?我的理解是我不需要在EF和LINQ中这样做。请向我指出有关在代码中管理连接或LINQ/EF和数据库连接的最佳实践的Microsoft文档更新:我加了db.Connection.Close();db.Dispose();并且在执行完这两行后,我仍然在SQL中看到打开的连

c# - 我需要在 LINQ 查询后强制 Dispose 吗?

我的DBA说打开的连接太多了,他认为是我在.net中的代码让它们保持打开状态。我首先使用LINQ查询和EF代码。示例方法:publicListGetStuff(){vardb=newDBContext();varresults=db.stuff.toList();returnresults;}完成后是否需要处理数据库变量?我的理解是我不需要在EF和LINQ中这样做。请向我指出有关在代码中管理连接或LINQ/EF和数据库连接的最佳实践的Microsoft文档更新:我加了db.Connection.Close();db.Dispose();并且在执行完这两行后,我仍然在SQL中看到打开的连

c# - 我需要处理 SemaphoreSlim 吗

根据文档:"aSemaphoreSlimdoesn'tuseaWindowskernelsemaphore".SemaphoreSlim是否使用了任何特殊资源,这使得在不再使用SemaphoreSlim时调用Dispose变得很重要? 最佳答案 如果您访问AvailableWaitHandle属性,然后是,您必须调用Dispose()来清理非托管资源。如果您不访问AvailableWaitHandle,则否,调用Dispose()不会做任何重要的事情。如果您访问AvailableWaitHandle,SemaphoreSlim将根据

c# - 我需要处理 SemaphoreSlim 吗

根据文档:"aSemaphoreSlimdoesn'tuseaWindowskernelsemaphore".SemaphoreSlim是否使用了任何特殊资源,这使得在不再使用SemaphoreSlim时调用Dispose变得很重要? 最佳答案 如果您访问AvailableWaitHandle属性,然后是,您必须调用Dispose()来清理非托管资源。如果您不访问AvailableWaitHandle,则否,调用Dispose()不会做任何重要的事情。如果您访问AvailableWaitHandle,SemaphoreSlim将根据

c# - Linq 上下文对象未注册为 System.IDisposable 对象的类型

我正在尝试在using语句中使用我的“上下文”对象。它适用于一个项目,但在另一个项目上,我收到以下错误。'...':typeusedinausingstatementmustbeimplicitlyconvertibleto'System.IDisposable'当我提到“上下文”对象时,我指的是在您使用LINQtoSQL时自动创建的对象。我正在使用的类实现了另一个接口(interface),这会不会搞砸这个上下文对象?using(TGDCcontext=newTGDC()){}这个词using下面有红色波浪线(错误)。 最佳答案

c# - Linq 上下文对象未注册为 System.IDisposable 对象的类型

我正在尝试在using语句中使用我的“上下文”对象。它适用于一个项目,但在另一个项目上,我收到以下错误。'...':typeusedinausingstatementmustbeimplicitlyconvertibleto'System.IDisposable'当我提到“上下文”对象时,我指的是在您使用LINQtoSQL时自动创建的对象。我正在使用的类实现了另一个接口(interface),这会不会搞砸这个上下文对象?using(TGDCcontext=newTGDC()){}这个词using下面有红色波浪线(错误)。 最佳答案