jjzjj

c# - "using"语句是否总是处理对象?

using语句是否总是处置对象,即使其中有返回或抛出异常?即:using(varmyClassInstance=newMyClass()){//...return;}或using(varmyClassInstance=newMyClass()){//...thrownewUnexplainedAndAnnoyingException();} 最佳答案 是的,这就是重点。它编译为:SomeDisposableTypeobj=newSomeDisposableType();try{//useobj}finally{if(obj!=nul

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# - 如果程序意外关闭,IDisposable 对象是否会被处理掉?

如果程序意外退出(异常或进程终止)会怎样?是否存在程序将终止但IDisposable对象不会被正确处理的情况(或其他情况)?我问的原因是因为我正在编写将与外围设备通信的代码,我想确保它不会处于不良状态。 最佳答案 如果原因是异常并从usingblock或trycatchfinallyblock中抛出,它将按应有的方式处理。如果它没有被usingblock捕获,它就不会自动处理(就像应用程序正常关闭时不会处理一样)。示例:IDisposabled1=newX();using(IDisposabled2=newX()){thrownew

c# - 如果程序意外关闭,IDisposable 对象是否会被处理掉?

如果程序意外退出(异常或进程终止)会怎样?是否存在程序将终止但IDisposable对象不会被正确处理的情况(或其他情况)?我问的原因是因为我正在编写将与外围设备通信的代码,我想确保它不会处于不良状态。 最佳答案 如果原因是异常并从usingblock或trycatchfinallyblock中抛出,它将按应有的方式处理。如果它没有被usingblock捕获,它就不会自动处理(就像应用程序正常关闭时不会处理一样)。示例:IDisposabled1=newX();using(IDisposabled2=newX()){thrownew

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? 最佳答

c# - 避免在处理控件时调用 Invoke

我的工作线程中有以下代码(下面的ImageListView派生自Control):if(mImageListView!=null&&mImageListView.IsHandleCreated&&!mImageListView.IsDisposed){if(mImageListView.InvokeRequired)mImageListView.Invoke(newRefreshDelegateInternal(mImageListView.RefreshInternal));elsemImageListView.RefreshInternal();}但是,有时使用上面的Invoke方