0

Пытаюсь сделать копирование файлов с ProgressBar. Всё в принципе работает но вот форма всё таки виснит при копирование. Может чего не так сделал при создании потока. Может кто помочь?

Сам исходник вот

P.S. Если надо могу и проект выложить

zerpico
  • 1,147

1 Answers1

0

Добавив в ваш код логирование можно сразу увидеть, что копированием на самом деле занимается главный поток и в этом ваша проблема.

Переделал метод:

private void cp(string path)
{
    string dest = @"C:\Temp";
    try
    {
        if (File.Exists(path))
        {
            var destPath = Path.Combine(dest, Path.GetFileName(path));
            File.Copy(path, destPath, true);
        }
    progresPart.Invoke(new Action(() =>
                                      {
                                          progresPart.Value++;
                                          progresPart.Update();
                                      }));
}
catch (Exception ex)
{
    MessageBox.Show("Ошибка: " + ex.Message);
}

}

wind
  • 3,081