2009-05-25 2 views
1

누군가이 모든 파일을 처리 한 이유를 설명 할 수 있습니까? 그게 날 미친 운전. 감사합니다For 루프가 두 번 실행됩니다.

private void HP3BackgroundWorker_DoWork(object sender, DoWorkEventArgs e) 
    { 
     BackgroundWorker hp3worker = (BackgroundWorker) sender; 

     DirectoryInfo hp3Files = new DirectoryInfo(fromPath + @"\hp3\"); 
     FileInfo[] hp3Filelist = hp3Files.GetFiles("*.*"); 
     int count = hp3Filelist.Length; 

     UseWaitCursor = true; 
     for (int i = 0; i < count; i++) 
     { 
      FileInfo file = hp3Filelist[i]; 
      try 
      { 
       File.Copy(fromPath + @"\hp3\" + file.Name, toPath + @"\hp3\" + file.Name, true); 
       hp3worker.ReportProgress((int)((float) i/count * 100)); 
      } 
      catch (Exception error) 
      { 
       MessageBox.Show("Error is " + error); 
      } 
     } 
     UseWaitCursor = false; 
    } 
+4

자세한 정보가 필요합니다. 두 번 실행하는 분명한 이유는 없습니다. DoWork 함수가 두 번 호출 되었습니까? –

+0

이 코드가 FileSystemWatcher 이벤트에서 호출되면 아마도 두 번 호출됩니다. – idstam

+0

아마도? 왜 먼저 확인하지 그래? 메소드가 두 번 호출되는지 여부를 모르는 경우 어떻게 도와야합니까? –

답변

8

이벤트 처리기 HP3BackgroundWorker_DoWork을 두 번 연결했는지 확인하십시오.

+0

두 번 불렀습니다. 나는 그것을 여러 번 통과시켰다. 나는 그것을 놓친 것을 모른다! 고맙습니다! – JimDel

2

함수가 두 번 호출되지 않았습니까? 그 루프는 괜찮아 보인다.

관련 문제