处理连接或关闭连接

以下两种方法中哪一项具有更好的性能?

using( var DB_Connection_s = new DBConnection() ) { //todo: interact with database connection } 

要不就 :

 DB_Connection_s.Close(); 

在末尾。

第一种方法是否使汇集概念无用? 因为如果我为每次使用处理连接,那么我每次都必须打开一个新连接(并且池中没有任何连接)。

当您在Connection上调用Close或Dispose时,连接将被释放回池中…

source = SQL Server连接池(ADO.NET)

因此,不要担心错过池连接导致的性能损失。
从代码的角度来看,差异应该是如此之小,以至于应始终using语句

using模式更好,因为Dispose调用无论如何都会关闭连接,但作为奖励,即使使用中的某些内容出错,连接也会关闭。 例如,exception或只是强制程序执行退出使用范围的返回。 通过使用,您无需显式关闭连接,这使代码更具可读性。 作为另一种模式,必须尽快关闭连接。 关闭/打开连接过于频繁没有性能缺陷,因为连接池将优化连接重用。

使用Dispose。 在Dispose内部,它将关闭连接,因此您不必担心,如果有疑问,可以使用Reflector或类似设备轻松检查。

至于性能,我仍然会使用Using。 Windows启用了各种缓存(当然在ODBC中),以确保对同一连接的重复请求可以重复使用,因此您不必担心性能。

除非你很快再打电话给.Open()

使用using(){}块。

如果你打算尽快在其他地方使用相同的连接,
.close(); 然后.open()等……
保持你的类实现IDisposable并处理那里的连接!

它仍然需要时间来创建Connection对象