Guten Morgen,
ich habe eine Funktion in der mehrere Dateien mit File.Copy(Datei, Ziel) nacheinander (Schleife) kopiert werden. Das Problem ist, dass dabei (auch „zwischen“ den einzelnen Copys) alles andere blockiert ist, es werden also auch keine Steuerelemente aktualisiert etc. Etwas genauer: ich habe einen einfachen Fortschrittsbalken (ProgressBar), der nach Abschluss eines Copy-Befehls erhöht wird. Dies wird jedoch nicht sichtbar, erst nach Abarbeitung aller Kopiervorgänge schießt der Fortschrittsbalken auf 100%. Auch ein zwischenzeitliches invalidate() hilft nichts. Mein Code sieht vereinfacht so aus:
for (…)
{
File.Copy(Datei, Ziel, true);
ProgressBar.Value++;
ProgressBar.Invalidate();
}
Übrigens habe ich File.Copy() auch schon durch ein FileInfo-Objekt ersetzt und die CopyTo()-Methode verwendet, das Problem bleibt aber bestehen.
Würde es helfen, die Kopiererei in einen Thread auszulagern? Damit habe ich allerdings wenig Erfahrung, aber wenn’s nicht anders geht
Oder habt ihr sonst irgendwelche Ideen?
Vielen Dank im Voraus für konstruktive Antworten!
Beste Grüße
Harry