2011-08-15 5 views
0

FileSystemWatcher를 사용하여 파일 변경 폴더를 모니터링하는 응용 프로그램이 있습니다. 문제는 이러한 이벤트를 잡을 때 해당 문서에 대한 변경 (링크 업데이트)을 수행해야하며이 과정을 통해 이벤트가 다시 트리거되어 애플리케이션을 루프에 던지게된다는 것입니다.FileSystemWatcher와 연결된 와이어 연결 해제

그래서 난이 시도 :

UnWireEvents(); //Turn off the events while updating the documents 
      ChangeAllLinks(); 
      WireEvents(); //Turn the events back on 

    private void WireEvents() 
      { 
       _monitor.FileChanged += new EventHandler(_monitor_FileChanged); 
      } 

      private void UnWireEvents() 
      { 
       _monitor.FileChanged -= new EventHandler(_monitor_FileChanged); 
      } 

을하지만이 작동하지 않는 것, 응용 프로그램은 여전히 ​​루프로 들어갑니다. 그렇다면 왜 작동하지 않으며, 대신 무엇을해야합니까?

답변

1

대신에 이벤트 핸들러를 unhooking의 모든 만들기/이름 바꾸기/삭제/변경 이벤트를 해제 거짓 에 에게 FileSystemWatcher 구성 클래스의 EnableRaisingEvents 속성을 설정할 수 있습니다. 링크를 변경 한 후에는 EnableRaisingEvents를 true로 설정하여 FileSystemWatcher 을 사용하도록 설정하십시오.

+0

감사합니다. 내가 처음 한 일이 왜 효과가 없었던가? – Anders