Fehler mit Progressbar

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von DrawCase.

    Fehler mit Progressbar

    Hallo,

    ich habe hier ein sehr seltsames Problem.

    Ich haben einen Code, der eine Schleife enthält, die nach jedem Schritt
    noch eine Progressbar vollfüllt.
    Das klappt auch ganz prima, bloß nach mehrmaligem ausführen des Codes (manchmal schon nach einem Mal)
    macht er mit dem Code nicht weiter. Hört einfach auf, ohne irgendeine Fehlermeldung.

    Der Code wird in einem BackgroundWorker ausgeführt

    VB.NET-Quellcode

    1. controll.checkforIllegalCrossThreadCalls = false 'nicht die beste Lösung, aber das klappt
    2. btnRAMLehren.Enabled = False
    3. TrackBar1.Enabled = False
    4. ProgressBar1.Visible = True
    5. ProgressBar1.Value = 0
    6. ProgressBar1.Maximum = TrackBar1.Value
    7. Me.Cursor = Cursors.WaitCursor
    8. Meine Schleife
    9. ProgressBar1.Visible = False
    10. TrackBar1.Enabled = True
    11. btnRAMLehren.Enabled = True

    Der Code hört nach dem Enablen der Trackbar einfach auf.

    Hab das ganze auch schon in einen Try Block geschrieben, welcher keine Fehler meldet


    Wenn ich

    VB.NET-Quellcode

    1. ProgressBar1.Visible = True
    2. ProgressBar1.Value = 0
    3. ProgressBar1.Maximum = TrackBar1.Value

    weglasse, funktioniert aller hervorragend.

    Hoffe jemand hat nen Tipp für mich

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

    Machst du bitte das "CheckForIllegalCrossThreadCalls" weg, das ist der größte Bullshit, denn somit verdeckst du das Problem nur, anstatt es zu beheben. Genau hier liegt wahrscheinlich auch der Fehler. Also, da invoken.

    BGWs würde ich nicht mehr verwenden. Nehme nen eigenen Thread.
    Ein Try-Block ist auch Schwachsinn, denn der meldet auch nicht mehr als die IDE selber.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Hab ich doch geschrieben. Du lagerst das in einen Thread aus und invokest dann.
    Außerdem greift "CheckForIllegalCrossThreadCalls" nicht auf irgendwas zu, sondern verdeckt nur alles, deswegen ist es Bullshit und somit bekommst du auch keine Meldungen oder ähnliches...
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Neue Sub machen, in deinem entsprechenden Event diese als neuen Thread starten und um auf die Controls zuzugreifen:

    VB.NET-Quellcode

    1. Me.Invoke(Sub()
    2. 'Hier zuweisen
    3. End Sub)
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: