우리 데스크톱 응용 프로그램 (C#)에서 save/opn 파일 대화 상자를 사용하고 있습니다. 대화 상자를 처음 열면 핸들이 100 씩 증가합니다. 대화 상자를 닫으면 핸들이 줄어들지 않습니다. 다음부터는 핸들이 10 씩 증가하고 2에서 4만큼 줄어 듭니다.C에서 파일 열기/저장 대화 상자를 사용하는 동안 리소스 유출을 방지하는 방법 #
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();
}
}
정말 누수가있을 가능성은 거의 없습니다. 그것을 증명할 수있는 몇 가지 최소한의 코드를 보여주십시오. 귀하의 코드가 무엇인지 추측하지 마십시오. –
작업 관리자를 보는 것은 메모리 또는 리소스 누수를 감지 할 수있는 충분한 방법이 아닙니다 ... 대신 프로파일 러 사용 –
이 년 후에 공통 대화 상자에 아무도 없었던 메모리 누수가있는 경우 매우 놀랍습니다. 지금까지 발견되었습니다 .. – MattDavey