2012-12-05 2 views
1

변경된 파일을 5 분마다 일괄 처리하기 위해 TimerFileSystemWatcher의 응용 프로그램이 있습니다.변경된 파일의 일괄 처리

FileSystemWatcher은 파일이 변경되고 파일 경로가 이미 큐에 있는지 여부를 확인한 후에 만 ​​Queue에 추가 될 때 이벤트를 발생시킵니다.

Timer이 틱하면 각 항목을 팝핑하고 처리하여 대기열을 반복합니다. 큐가 비게 될 때까지.

내 질문은 :

  • 오전 내가 제대로이 문제를 해결하기 위해 노력하고 올바른 데이터 유형을 사용하고 계십니까?
  • Queue에 동시 액세스하는 것에 대해 걱정할 필요가 있습니까? 그렇다면 어떻게해야합니까?

답변

1

편집 : 질문 1 : 나는 방법을 생각하고 내가 보는 바와 같이 적절한 당신이 파일의 일괄 처리에 사용하는 오브젝트. 참고 : 변경 사항을 처리하는 시간 간격은 파일 잠금 문제 또는 이와 유사한 문제가 발생하지 않도록 충분히 공정해야합니다.

질문 2 : 동일한 인스턴스에서 대기열에 액세스하는 경우 문제가 발생하지 않습니다. differentnet 스레드에서 액세스하는 경우 모음과 함께 잠금 문제가 발생합니다. 여기서는 그렇지 않습니다. 대기열 액세스 및 스레드 안전에 대한 그 문제 나 걱정이 발생할 경우

그럼 다시, 내가 사용하는 것이 좋습니다 것 - Concurrent Collection types

귀하의 질문 : "어떻게됩니까을 타이머는은 FileSystemWatcher가를 추가하는 동시에 틱 경우 변경된 파일? " -이 질문에 대한 답변은 "예외 나 오류가 발생하지 않으며 파일 변경 사항을 추가하면 다음 타이머 틱에서 처리됩니다."

+0

답변 1의 첫 문장 또는 답변 2의 의미를 이해하지 못합니다. 확장 해주세요. 'Timer'가'FileSystemWatcher'가 변경된 파일을 추가하는 것과 동시에 틱하면 어떻게됩니까? – Cheetah

+0

내 대답이 명확하게 편집되었습니다. – Jsinh

+0

이제 Timers 경과 및 FileSystemWatchers가 Thread 풀의 모든 스레드에 대해 알게되면 처리해야 할 몇 가지 동시 편집이있을 수 있습니다. – Cheetah