首页 / 知识
关于.net:关闭并处理-调用哪个?
2023-04-15 06:04:00

Close and Dispose - which to call?读完线程SqlCommand.Dispose是否足够? 以及关闭和处置WCF服务我想知道诸如SqlConnection之类的类还是从Stream类继承的几个类之一,如果我关闭Dispose而不是Close会不会很重要? 我想澄清这种情况。
根据Microsoft的准则,在适当的地方提供
在大多数情况下,
说:
像往常一样,答案是:取决于情况。不同的类以不同的方式实现
就
您应该在连接上调用
连接会自动池化,并且在连接上调用
*如果您要调用 您确实需要调用Dispose()! Dispose()供开发人员调用,垃圾收集器则调用Finalize()。如果您不对对象调用Dispose(),则直到垃圾回收器出现并对其进行调用最终确定(谁知道那将在何时发生)之前,它们所使用的任何非托管资源都不会被处理。 这种情况称为非确定性终结,并且是.net开发人员的常见陷阱。如果您正在使用实现IDisposable的对象,请对它们调用Dispose()! http://www.ondotnet.com/pub/a/oreilly/dotnet/news/programmingCsharp_0801.html?page=last 尽管可能有很多实例(例如在SqlConnection上),您在某个对象上调用Disponse(),而它只是在其连接上调用Close()或关闭文件句柄,但调用Dispose()几乎总是您的最佳选择!除非您计划在不久的将来重用该对象。
对于
对于Stream,它们实际上是等效的。 这可能很快就会成为一个很长的答案。抱歉。
正如tyler在他的好答案中指出的那样,调用
现在,在某些情况下,将有一些特定于您正在处理的类的"完成"方法,例如
但是,浏览MSDN时,您会发现,即使是Microsoft,有时也会因众多的关闭器和处置器而感到困惑。例如,在此网页中,在某些示例中,
我想到的原因(并且,我强调,这是原始研究,如果我错了,我肯定会丢掉声誉)是
是的,我想微软会漏掉一个例子。也许该时间戳永远不会刷新到文件中。 我明天要修正旧代码。
编辑:对不起,布兰农,我无法评论您的答案,但是您确定在
回答Brannon的问题:太好了,只是不要忘记在真正需要时调用 通常,我们在Close(),Abort()和Dispose()中面临问题,但让我告诉您它们之间的区别。 1)ABORT:-我不建议使用此方法,因为当调用abort时,客户端将删除连接而不通知服务器,因此服务器将等待一段时间(大约1分钟)。如果您有批量请求,则不能使用abort(),因为它可能会导致有限的连接池超时。 2)关闭:-关闭是关闭连接的好方法,因为关闭连接时,它将调用服务器并确认服务器也在该侧关闭。
在这里,还有另一件事要看。 3)处置:-这是关闭的一种类型,但是在关闭连接后无法再次打开它。 因此,尝试这种方式,
将类型转换为iDisposable,然后对其进行调用处理。这将调用配置为实现" iDisposable.Dispose"的任何方法,而不管该函数的名称是什么。 |
最新内容
相关内容
浏览器调用linux命令?
浏览器调用linux命令?,系统,信息,人工智能,软件,数据,首次,地址,代码,咨询,服务,求助大神,如何通过网页使用python向linux系统发送一些命令执linux线程查询命令?
linux线程查询命令?,系统,第一,线程,命令,软件,名称,信息,进程,选项,方法,Linux系统如何查看进程的线程数1、第一种方法:top命令法首先执行toppy调用linux的命令?
py调用linux的命令?,系统,代码,状态,环境,标准,工具,命令,文件,脚本,终端,linux执行python脚本1、先将终端所在路径切换到python脚本文件的目linux命令关闭视图?
linux命令关闭视图?,系统,状态,管理,百分比,信息,情况,基础,软件,观察,首次,怎么查看linux正在运行的命令在 Linux 系统中,以下几个命令可以查linux服务器基本命令?
linux服务器基本命令?,地址,系统,设备,网络,工作,标准,信息,电脑,命令,密码,linux如何查看ip地址命令(linux如何查看ip地址)1、目录方法1:使用Ulinux系统命令调用?
linux系统命令调用?,系统,单位,工具,工作,管理,地址,权威,密码,电脑,信息,怎么把linux系统的命令行打开在Linux系统中,打开命令行窗口需要使用linux服务器下载命令?
linux服务器下载命令?,服务,密码,系统,档案,工具,网络,公共,百度,地址,认证,linux下lftp连接ftp服务器上传下载命令连接ftp服务器 格式:ftp [holinux命令关闭防火墙?
linux命令关闭防火墙?,服务,软件,系统,信息,设备,公共,防火墙,命令,之间,内部网,linux关闭防火墙命令?linux关闭防火墙命令:service iptables slinux关闭蓝牙命令?
linux关闭蓝牙命令?,服务,系统,状态,工作,发行,名字,地址,信息,软件,情况,linux系统怎么查看或关闭服务?1、ps aux 或netstat -tlunp ps是进程linux休眠关闭命令?
linux休眠关闭命令?,系统,设备,信息,状态,代码,时间,传播,地址,控制权,投入,linux下面强制关闭屏幕命令按下Ctrl+Alt+F1返回原来的tty。 如果关闭启动linux的命令?
关闭启动linux的命令?,服务,系统,命令,代码,手机,软件,密码,管理,信息,状态,linux防火墙关闭和开启命令1、打开Linux系统进入桌面,点击上方菜单linux关闭se命令?
linux关闭se命令?,状态,系统,手机,工具,命令,标准,文件,提示符,方法,防火墙,关闭Linux系统中的SELinux功能的教程1、以根用户登录Linux系统,然