在c#中使用“打开/保存文件”对话框时如何防止资源泄漏

我们正在桌面应用程序(C#)中使用save / opn文件对话框。 当我们第一次打开对话框时,句柄增加了100.关闭对话框后,句柄没有变小。 从下一次开始,手柄会增加10个左右,并减少2个到4个。

我们尝试通过调用dispose并将其设置为null来减少句柄。 并尝试使用块。 但是他们都没有解决这个问题。

你能告诉我有关这方面的任何工作吗? 或者我们可以使用任何自定义控件等

请对此提出建议

提前致谢

代码:代码是

SaveFileDialog objSaveDialog = new SaveFileDialog();
try
{

    objSaveDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
    objSaveDialog.Title = "Save to Text File";
    //objSaveDialog.ShowDialog();
    DialogResult dlgResult = objSaveDialog.ShowDialog();
    objSaveDialog.Dispose();
    if (dlgResult == DialogResult.OK)
    {
        string strSaveFilePath = objSaveDialog.FileName;

        if (!string.IsNullOrEmpty(strSaveFilePath))
        {
            TextWriter myTxtWriter = new StreamWriter(strSaveFilePath, false);
            for (int index = 0; index < 10000; index++)
            {
                myTxtWriter.WriteLine("sample text.....................................");
            }

            myTxtWriter.Flush();
            myTxtWriter.Close();
            myTxtWriter.Dispose();

        }
    }
}
finally
{
    if (objSaveDialog != null)
    {
        objSaveDialog = null;
        //((IDisposable)objSaveDialog).Dispose();
    }
}

当你打开一个shell对话框时,很多代码会被加载到你的进程中。 所有机器上安装的外壳扩展处理程序。 你没有写的代码。 当您在Project + Properties,Debug选项卡中勾选“启用非托管代码调试”选项时,您可以看到它们在Output窗口中加载。

有这些外壳扩展处理程序错误和泄漏资源肯定是不常见的。 您可以使用SysInternals的AutoRuns实用程序来禁用它们。 从不是由微软写的那些开始。

链接地址: http://www.djcxy.com/p/40545.html

上一篇: How to prevent resource leaks while using Open/Save file dialog in c#

下一篇: Looking for a good Dynamic Imaging Solution