2012-05-21 3 views
1

Visual Studio 2010을 사용하여 파일을 읽으려고 할 때 "임의로 다른 프로세스에서 파일 사용"을 얻습니다. 임 동일한 절차다른 프로세스에서 사용하는 디버그 파일

코드는

textReader = new StreamReader(path); 

나는 개인적으로 그 어떤 종류의 생각의 시간의 10 %를 나누기

private static TextReader CreateTextReader(IsolatedStorageFile isolatedStorageFolder, string path) 
     { 
      TextReader textReader = null; 

      if (isolatedStorageFolder == null) 
       textReader = new StreamReader(path); 
      else 
       textReader = new StreamReader(new IsolatedStorageFileStream(path, FileMode.Open, isolatedStorageFolder)); 

      return textReader; 
     } 

입니다 나누기 코드와 메모리에 약 10 XML 파일 읽기 가비지 콜렉션 문제에 대해 누구나 이런 종류의 문제를 디버깅하는 방법에 대한 정보를 얻을 수 있습니다.

+2

'StreamReader'를 처리 하시겠습니까? –

+0

예, textreader가 using 문에 있습니다. 그리고 필자도 꼭해야 할 일이 아니더라도 필자는 textreader에 가까이 다가갔습니다. – klashagelqvist

+1

해당 코드를 표시 할 수 있습니까? –

답변

1

파일을 잠글 수있는 모든 증기 판독기 작업에서 .Dispose 또는 .Close를 호출해야합니다. 이 코드는 저에게 평이한 프로그램으로 작용하기 때문에 문제가 될 수 있습니다.

1

TextReader을 처분해야합니다. 응용 프로그램을 닫을 때

using (TextReader r = CreateTextReader(...)) 
{ 
} 

같은 using 문을 사용 그렇지 않으면 파일이 열린 상태로 유지됩니다.

편집 실제로 이미 using 사용하고있는 질문에 대한 귀하의 의견에
당신은 말을하는지 - 읽기하려는 파일이 실제로 다른 응용 프로그램에서 열릴 때이 될 수 있을까? 때때로 antivir 솔루션은 파일을 검사하거나 물건을 잠그는 동안 파일을 잠급니다. 잠시 후에 다시 작동합니까, 아니면 다시 부팅해야합니까?

+0

+1'using'은 관용적입니다. –

+0

@ JoshuaDrake : 감사합니다! –

관련 문제