2013-10-08 2 views
2

필자는 과거에 FileSystemWatcher를 사용했습니다. 그러나, 나는 누군가가 그것이 실제적으로 뒤에서 어떻게 작동 하는지를 설명 할 수 있기를 희망한다.FileSystemWatcher가 하드 드라이브에 미치는 영향은 무엇입니까?

내가 만들고있는 응용 프로그램에서이 파일을 활용할 계획이며 약 5 개의 드라이브와 300,000 개의 파일을 모니터링합니다.

실제로 FileSystemWatcher가 드라이브에서 "Checking"을 수행합니까? 드라이브에 마모가 발생 했습니까? 또한 "잠자기"에 대한 하드 드라이브 기능에 영향을 미치지 않습니까?

이것은 어떻게 작동하는지 이해하지 못합니다 - 타이머 등에서 드라이브를 검사하는 것과 같거나 ...에서 어떤 유형의 알림을 기다리는 경우 그것은 무엇이든하기 전에 운영 체제.

드라이브에서 여분의 읽기가 발생하고 드라이브가 절전 모드가되지 않도록 구현하고 싶지 않습니다.

답변

5

그런 것은 없습니다. 파일 시스템 드라이버는 컴퓨터에서 실행되는 다른 프로그램에서 요청한 일반 파일 작업을 선택한 필터와 비교하여 모니터링합니다. 일치하는 것이 있으면 작업과 파일 이름을 기록하는 내부 버퍼에 항목을 추가합니다. 드라이버 요청을 완료하고 프로그램에서 실행할 이벤트를 가져옵니다. 해당 버퍼에서 전달 된 작업의 세부 정보를 가져옵니다.

아무 것도 실제로 작동 자체가 발생하지 않으므로 추가 디스크 작업이 전혀 없습니다. 그것은 모두 실행되는 소프트웨어입니다. 오버 헤드가 거의없고 아무것도 눈에 띄게 느려지지 않습니다.

+0

+1 나는 항상 IO 변경 알림을 구현하는 방법에 대해 궁금해했습니다. – Amro

2

짧은 대답은 아니오입니다. FileSystemWatcherReadDirectoryChangesW API를 호출하여 비동기 플래그를 전달합니다. 기본적으로 Windows는 디렉터리를 변경하면 할당 된 버퍼에 데이터를 저장합니다. 이 함수는 해당 버퍼에있는 데이터를 반환하고 FileSystemWatcher은 좋은 알림으로 변환합니다.