Visual Studio -- Backgroundworker

  • VB.NET
  • .NET 4.5

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

    Visual Studio -- Backgroundworker

    moin,
    Nachfolgende SUB läuft einwandfrei, bis auf den Copy Befehl, wenn eine ganze Menge Ordner zu kopieren sind. Dann wird das Prigramm immer langsamer und friet fast ein, bis der Copy Befehl abgearbeitet ist. Ich würde um das zu vermeiden gerne einen Backgroundworker einsetzen, aber ich weiss da leider nicht weiter. Kann mir jemand anhand der SUB da weiterhelfen, wie der Worker in die SUB eingebaut wird.

    VB.NET-Quellcode

    1. Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
    2. Label4.Text = ""
    3. Button7.ForeColor = Color.White
    4. Button7.BackColor = Color.Red
    5. Button7.Text = "copying please wait"
    6. If ListBox1.Items.Count > 0 Then
    7. My.Settings.Reload()
    8. Dim c As Integer = ListBox1.Items.Count - 1
    9. Dim B(c) As String
    10. For i As Integer = 0 To c
    11. B(i) = CStr(ListBox1.Items(i))
    12. Next
    13. Dim filereader55 As String
    14. For i As Integer = 0 To c
    15. filereader55 = My.Settings.Drive & Label8.Text & "\" & Label9.Text & "\" & B(i)
    16. My.Computer.FileSystem.CopyDirectory(My.Settings.Drive & "incoming\" & B(i), filereader55, True)
    17. Label4.Text = B(i)
    18. Kill(My.Settings.Drive & "incoming\" & B(i) & "\*.*")
    19. RmDir(My.Settings.Drive & "incoming\" & B(i))
    20. ListBox1.Items.Remove(B(i))
    21. ListBox1.Refresh()
    22. Label15.Text = ListBox1.Items.Count - 1
    23. Next
    24. ListBox1.Items.Clear()
    25. ListBox2.Items.Clear()
    26. ListBox3.Items.Clear()
    27. Label4.Text = ""
    28. If System.IO.Directory.Exists(My.Settings.Drive & "incoming") = False Then
    29. System.IO.Directory.CreateDirectory(My.Settings.Drive & "incoming")
    30. End If
    31. End If
    32. Button7.BackColor = Color.Green
    33. Button7.ForeColor = Color.White
    34. Button7.Font = New Font("Arial", 8, FontStyle.Regular)
    35. Button7.Text = "Ready to sort in incoming"
    36. Label15.Text = ""
    37. My.Settings.Total = 0
    38. My.Settings.Save()
    39. End Sub


    Thema verschoben und formatiert ~EaranMaleasi

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „EaranMaleasi“ ()

    Hi @Lastalien, willkommen im Forum.

    Zwei kurze Hinweise. Ich habe deinen Beitrag aus "Tipps und Tricks" herausgeholt und nach "Sonstige Probleme" verschoben. Achte bitte in Zukunft darauf, wo du deine Beiträge erstellst, da der Bereich nicht dafür da ist Fragen zu stellen.
    Als nächstes möchte dich darauf hinweisen, dass es im Editor auch Optionen für's Syntax-Highlighting gibt. In diesem Falle der VB.NET Button. Das macht es allen einfacher deinen Code zu lesen. Bitte nutze dies in Zukunft. Ich habe mir erlaubt das in diesem Post bereits zu korrigieren.

    Mehr infos dazu findest du in diesen Posts:
    [Allgemein] VB.NET, VB6, VBA, VBS — Mit welcher Sprache programmiere ich eigentlich?
    [Forum] Welche BBCodes (Tags) gibt es hier im Forum zum Einfärben von Quellcodes (Syntax-Highlighting)?
    [Forum] Welche BBCodes (Tags) sind im Forum zur Gestaltung der Postings verfügbar? (Anleitung zur Benutzung)
    SIMDoku (Simple Dokumentenverwaltung)
    Mein Lernprojekt um die verschiedensten Facetten der .NET Entwicklung zu erkunden.
    GitHub

    VB Paradise Dark Theme
    Inoffizieller VB-Paradise Discord.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EaranMaleasi“ ()

    Willkommen im Forum.

    Bevor Du weitermachst, bitte die empfohlenen VS-Einstellungen verwenden. Das ganze ist doch sehr VB6-lastig.
    Danach bist Du beim Stichwort Async/Await richtig. Backgroundworker ist out-of-date.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Als Ergänzung zu @VaporiZeds Post und nachdem du den VisualBasic Namespace rausgeworfen hast, werden deine Kill und RmDir Commands nicht mehr funktionieren.
    Schau mal nach FileInfo und DirectoryInfo, da wird dir geholfen.

    Die Steuerelemente sollten zudem Namen bekommen, die jeder beim Quellcode lesen auch versteht und aussagen, was sie machen oder was sie beinhalten.
    Also nicht Button13 sondern BtnClose oder BtnOpenfileDialog.