Announcement

Collapse
No announcement yet.

Probleme mit Thread beim Kopieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit Thread beim Kopieren

    Hallo, ich habe hier eine Klasse geschrieben, die in meinem Programm fürs kopieren, löschen, umbenennen usw von Dateien zuständig sein wird.
    Falls größere Dateien kopiert werden, ist ja das Programm eine zeitlang nicht "ansprechbar", daher möchte ich Threads nutzen und zwar direkt in der Klasse um nicht jedes mal von außen die Threads zu verwenden.

    Die Fehlemeldung lauetet:
    File_Operation.cs: Fehler CS0149: Methodenname erwartet.

    der Fehler tritt in Zeile 50 auf

    CODE
    Code:
    using System;                                                                           
    using System.Collections.Generic;                                                       
    using System.Text;                                                                      
    using System.Threading;                                                                 
    using System.Windows.Forms;                                                             
    
    namespace CoDeFS
    {
        class File_Operation
        {
            // Variablen
            
    
            // ANFANG: BLOCK - KOPIEREN  
    
            // Kopiert edie Quelldatei und überwschreibt die Zieldatei, falls vorhanden
            public void copy_file_by_overwriting(string source_file, string destination_file)
            {
                try
                {
                    //Kopieret die Datei.
                    System.IO.File.Copy(source_file, destination_file, true);               // Parameter "true" ermöglicht es die bereits vorhandene Datei zu überschreiben.                    
                }                                                                           // entfernt man "true" wird eine Exception ausgelöst, die im Falle einer vorhandenen Zieldatei eintritt
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    
            // Führt in einem Thread das Kopieren aus: Grund so bleibt das Programm auch während dem Kopiervorgang erreichbar
            public void copy_file(string source_parameter, string destination_parameter)
            {
    
                Thread mythread = new Thread(
                    new ThreadStart( 
                       copy_file_by_overwriting(source_parameter, destination_parameter)
                    )
                );
                mythread.Start();
            }
    
            // ENDE: BLOCK - KOPIEREN 
    
    
            // ENDE - "class File_Operation"
        }
    }
    Danke

  • #2
    Originally posted by iwb-augsburg View Post
    Hallo, ich habe hier eine Klasse geschrieben, die in meinem Programm fürs kopieren, löschen, umbenennen usw von Dateien zuständig sein wird.
    Falls größere Dateien kopiert werden, ist ja das Programm eine zeitlang nicht "ansprechbar", daher möchte ich Threads nutzen und zwar direkt in der Klasse um nicht jedes mal von außen die Threads zu verwenden.

    Die Fehlemeldung lauetet:
    File_Operation.cs: Fehler CS0149: Methodenname erwartet.

    der Fehler tritt in Zeile 50 auf
    Leider hat das Entwickler-Forum nicht gezeigt, wo Zeile 50 steht. Aber die SDK-Doku sagt u.a., dass bei "new Thread" eine Methode angegeben werden muss, die einem ThreadStart-Delegat entspricht; und der hat keine Parameter - im Gegensatz zu Deiner Methode.

    Du benötigst stattdessen eine Methode vom Typ ParameterizedThreadStart-Delegat und musst Deine Parameter in einem Objekt übergeben. (Es gibt noch andere Varianten, aber das ist vermutlich diejenige, die Deinen Code am schnellsten anpasst.)

    Viel Erfolg! Jürgen

    Comment

    Working...
    X