Loop проходит через два раза - PullRequest
1 голос
/ 25 мая 2009

Может кто-нибудь сказать мне, почему это обрабатывает все файлы, а затем делает это снова? Это сводит меня с ума. Спасибо

    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;
    }

Ответы [ 2 ]

8 голосов
/ 25 мая 2009

Проверьте, не подключили ли вы обработчик событий HP3BackgroundWorker_DoWork дважды?

2 голосов
/ 25 мая 2009

Вы уверены, что функция не вызывается дважды? Эта петля выглядит хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...