thread in vb

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von max79.

    thread in vb

    Hallo Leute,

    ich habe mich seit einigen Wochen an VB 2010 Express versucht und mir ein kleine Prog. für meine Datensicherung geschrieben. Nun musste ich allerdings feststellen, dass bei kopieren deiner größeren Datei das Programm nicht mehr reagiert. Also hab ich bissi die Suchmaschinen durchgesucht und habe gelesen das man Threads verwenden kann und habe einen solchen eingebastelt. Nun, ist aber meine Frage wie ich bestimmte Werte (z.B. den Namen der Datei die aktuell kopiert wird) wieder in einem Feld im Hauptformular ausgeben lassen kann. Ein Aufrufe der Art

    VB.NET-Quellcode

    1. me.lblSourceFile.text=arrSource(x)
    oder

    VB.NET-Quellcode

    1. me.lblSourceFile.text=arrSource(x).toString


    bringt den Fehler "Ungültiger threadübergreifender Vorgang: Zugriff auf das Steuererlement xxx erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde."

    Ich habe die Zeilen in der Sub versucht, welche die Daten kopiert, als auch in der Sub "ProgressChanged". ?(

    Hat jemand evtl. eine Lösung für mich?
    Mit Control.BeginInvoke delegiert man einen Aufruf an den MainThread zurück. Dabei ist egal, welches Control (Ich zb bevorzuge Application.OpenForms(0))

    Du kannst dir auch AsyncWorker - CodeProject zu gemüte führen - das enthält neben einer besseren Lösung als den Backgroundworker auch eine Einführung in solcherlei "UnBlock-Threading", mit dem man v.a. vermeiden will, dass das Gui einfriert.