Entwickler-Ecke

WinForms - Kopieren mit Progressbar


Maffi - Mi 18.03.09 16:14
Titel: Kopieren mit Progressbar
Hallo Leute,

ich kopiere mit folgender funktion einen Ordner

C#-Quelltext
1:
2:
3:
4:
5:
6:
if (abbruch==DialogResult.Yes)
{
    DirectoryInfo sourcedir = new DirectoryInfo(pr_auf_pf);
    sourcedir.MoveTo(pr_ver_pat_pf);
    copyDirectory(kr_pat_pf,pr_ver_pat_pf);
}


während des kopierens, bleibt die Form stehen (keine Rückmeldung) dementsprechend bleibt meine Progressbar auch hängen.

lg
Manuel


Th69 - Mi 18.03.09 16:31

Schau mal in the Thread http://www.c-sharp-forum.de/viewtopic.php?t=90974


Maffi - Do 19.03.09 08:57

ja, daran habe ich auch gedacht, leider fehlt mir die passende Syntax, ich habe eine Funktion geschrieben,



C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
public static void copyDirectory(string Src,string Dst)
    {
            String[] Files;
            if(Dst[Dst.Length-1]!=Path.DirectorySeparatorChar) 
                Dst+=Path.DirectorySeparatorChar;
            if(!Directory.Exists(Dst)) Directory.CreateDirectory(Dst);
            Files=Directory.GetFileSystemEntries(Src);
            foreach(string Element in Files)
              {
                if(Directory.Exists(Element)) 
                    copyDirectory(Element,Dst+Path.GetFileName(Element));
                else 
                    File.Copy(Element,Dst+Path.GetFileName(Element),true);
                }
}


wie schaff ich es, das diese funktion in nem neuen Thread gestartet wird?


wenn ich das so mache
System.Threading.Thread newThread;
newThread = new System.Threading.Thread(ordnercopy);
Compiliert er es zwar, aber es passiert nichts.

Danke für die Hilfe
Manuel


Maffi - Do 19.03.09 09:45

Sry kleiner Denk fehler, hat sich erledigt... ich sag nur newTherad.Start();


Maffi - Do 19.03.09 14:38

Noch ne kleine frage

C#-Quelltext
1:
2:
System.Threading.Thread newThread;
newThread = new System.Threading.Thread(wait_form.Show);


ich möchte gerne eine Form anzeigen lassen in nem neuen Theard, das problem ist, die Form wird nur eine Sek eingeblendet, und ist dann sofort wieder weg, kann ich die form irgendwie "halten"?

lg
Manuel