2012-11-05 2 views
0

가능한 중복은 :
Is XMLDocument.Save an atomic operation?다음 코드 줄을 실행하기 전에 파일 저장을 기다리는 방법?

나는 내 프로그램에서 Heisenbug을 가지고있는 것 같습니다. Xml 파일을 내 보낸 다음 다시 가져와야합니다. 문제는 Xml 파일 저장이 끝나기 전에 프로그램을 저장하고 다시 가져 오기 위해 다음 줄로 계속 진행되며 응용 프로그램 저장이 완료되지 않았기 때문에 응용 프로그램이 중단된다는 것입니다. 디버깅 할 때 파일을 저장할 충분한 시간이 있으므로 프로그램이 중단되지 않습니다.

나는 느린 컴퓨터에서 너무 오래 걸리면 여전히 충돌 할 수 있지만 Thread.Sleep을 사용할 수 있습니다.

저는 XmlDocument.Save을 사용하여 파일을 저장합니다. 파일이 완전히 저장되었을 때 어떤 종류의 콜백을 구현할 수있는 방법이 있는지 궁금합니다.

+4

'파일이 저장되기 전에 Save' 반환하지 않아야합니다. 여전히 OS 캐시를 통해 플러시 할 수 있지만 액세스하는 모든 것이 여전히 작동해야합니다. 문제를 보여주는 짧지 만 완전한 프로그램을 제작할 수 있습니까? –

+2

다음은 이전 질문과 비슷합니다. [http://stackoverflow.com/questions/2678079/is-xmldocument-save-an-atomic-operation][1] [1] : http://stackoverflow.com/questions/2678079/is -xmldocument-save-an-atomic-operation – Totero

답변

4

의심스러운 바이러스 백신. 많은 바이러스 스캐너는 파일을 잘 작성하지 못하고 닫을 때 파일을 잠그기 때문에 프로그램이 몇 초 동안 열리지 않습니다.

이 질문을 참조하십시오 :

+1

컴퓨터의 바이러스 백신이 매우 침입 적이기 때문에 바이러스 백신에 맞다고 생각합니다. 이 최선의 해결책은 x 시간을 시도하는 제한 시간을 가진 try-catch일까요? –

+0

@ 라이언 : 연결된 질문과 답변이 그 결론에 도달했습니다. 아마도 전체 컴퓨터의 구성을 변경하지 않고도 코드를 변경하면 가장 좋은 솔루션 일 것입니다. 더 나은 것은 고장난 AV 프로그램을 만드는 것입니다. –

관련 문제