草庐IT

disposable

全部标签

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# - IDisposable.Dispose() 实现应该是幂等的吗?

Microsoft.NET框架提供了IDisposable接口(interface),它需要实现voidDispose()方法。其目的是启用手动或基于范围的释放IDisposable实现可能已分配的昂贵资源。示例包括数据库集合、流和句柄。我的问题是,Dispose()方法的实现是否应该是幂等的-当在同一个实例上多次调用时,该实例只被“处理”一次,随后的调用不要抛出异常。在Java中,大多数具有相似行为的对象(再次以流和数据库连接为例)的close()操作是幂等的,这恰好是Dispose()方法。但是,我对.NET(尤其是Windows窗体)的个人经验表明,并非所有实现(.NET框架本身

c# - IDisposable.Dispose() 实现应该是幂等的吗?

Microsoft.NET框架提供了IDisposable接口(interface),它需要实现voidDispose()方法。其目的是启用手动或基于范围的释放IDisposable实现可能已分配的昂贵资源。示例包括数据库集合、流和句柄。我的问题是,Dispose()方法的实现是否应该是幂等的-当在同一个实例上多次调用时,该实例只被“处理”一次,随后的调用不要抛出异常。在Java中,大多数具有相似行为的对象(再次以流和数据库连接为例)的close()操作是幂等的,这恰好是Dispose()方法。但是,我对.NET(尤其是Windows窗体)的个人经验表明,并非所有实现(.NET框架本身

c# - 了解流及其生命周期(Flush、Dispose、Close)

注意:我已经阅读了以下两个问题:Canyouexplaintheconceptofstreams?C#usingstreams我正在用C#编写代码在几乎所有使用流的代码示例中,.Dispose()、.Flush()、.Close()几乎总是被调用。在流的概念中,完成了什么?如果我不处理存储在变量中的流,我的应用程序是否会在某处泄漏?为什么我需要调用这些函数中的任何一个?我见过不这样做但仍然完成工作的代码示例(没有明显破损)我目前正在我的应用程序中构建一个包含主要方法(我们称之为GetStream())的类,该方法通过myWebRequest.GetResponse().GetRespo

c# - 了解流及其生命周期(Flush、Dispose、Close)

注意:我已经阅读了以下两个问题:Canyouexplaintheconceptofstreams?C#usingstreams我正在用C#编写代码在几乎所有使用流的代码示例中,.Dispose()、.Flush()、.Close()几乎总是被调用。在流的概念中,完成了什么?如果我不处理存储在变量中的流,我的应用程序是否会在某处泄漏?为什么我需要调用这些函数中的任何一个?我见过不这样做但仍然完成工作的代码示例(没有明显破损)我目前正在我的应用程序中构建一个包含主要方法(我们称之为GetStream())的类,该方法通过myWebRequest.GetResponse().GetRespo

c# - Using 子句无法调用 Dispose?

我正在使用VisualStudio2010来定位.NET4.0客户端配置文件。我有一个C#类来检测给定进程何时开始/终止。为此,该类使用ManagementEventWatcher,其初始化如下;query、scope和watcher是类字段:query=newWqlEventQuery();query.EventClassName="__InstanceOperationEvent";query.WithinInterval=newTimeSpan(0,0,1);query.Condition="TargetInstanceISA'Win32_Process'ANDTargetIns

c# - Using 子句无法调用 Dispose?

我正在使用VisualStudio2010来定位.NET4.0客户端配置文件。我有一个C#类来检测给定进程何时开始/终止。为此,该类使用ManagementEventWatcher,其初始化如下;query、scope和watcher是类字段:query=newWqlEventQuery();query.EventClassName="__InstanceOperationEvent";query.WithinInterval=newTimeSpan(0,0,1);query.Condition="TargetInstanceISA'Win32_Process'ANDTargetIns

c# - 如果关联的 SqlConnection 将被处置,是否需要 SqlCommand.Dispose()?

我通常使用这样的代码:using(varconnection=newSqlConnection(ConfigurationManager.ConnectionStrings["MyConn"].ConnectionString)){varcommand=connection.CreateCommand();command.CommandText="...";connection.Open();command.ExecuteNonQuery();}我的命令会自动处理吗?或者不是,我必须将它包装到usingblock中?是否需要处置SqlCommand? 最佳答

c# - 如果关联的 SqlConnection 将被处置,是否需要 SqlCommand.Dispose()?

我通常使用这样的代码:using(varconnection=newSqlConnection(ConfigurationManager.ConnectionStrings["MyConn"].ConnectionString)){varcommand=connection.CreateCommand();command.CommandText="...";connection.Open();command.ExecuteNonQuery();}我的命令会自动处理吗?或者不是,我必须将它包装到usingblock中?是否需要处置SqlCommand? 最佳答