Codeablauf

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von reustli.

    Hallo Zusammen
    Ich habe eine Verständnisfrage.
    Wenn ich in einem Codeblock normalen Code schreibe, dann wird ja Zeile für Zeile abgearbeitet, soweit ist mir das klar.

    Wenn im Codeblock auf einen Thread verwiesen wird, dann kann der Parallel zum normalen Code ablaufen, wenn im vorherigen Codeblock nach dem Thread noch weiteren Code vorhanden ist, oder?

    Nun wie verhält sich das bei Sub's, also wenn in einem Codeblock auf einen Sub verwiesen wird (Call blabla), wird dann zuerst der Sub vollständig durchgearbeitet bevor er im normalen Codeblock weiterfährt? Oder kann u.U. dieser auch Parallel ablaufen?
    ich weis es zwar auch nicht genau aber ich denke bei diesem code:

    VB.NET-Quellcode

    1. Module Module1
    2. Sub Main()
    3. Console.WriteLine("test")
    4. messagebox("test123")
    5. Console.WriteLine("test")
    6. End Sub
    7. Sub messagebox(ByVal inhalt As String)
    8. MsgBox(inhalt)
    9. End Sub
    10. End Module

    als erstes schreib er eine zeile wo test steht, dann arbeitet er das komplette sub messagebox durch und dann schreibt er wieder eine zeile mit test.

    lg Gugi
    OK, vielen Dank euch. Dann lag ich mit meiner Vermutung korrekt.
    Kann ein Thread über ein Event hinaus gehen, also wenn im Form_Load auf einen Thread verwiesen wird indem sehr viel Code ist, kann dann der Thread immer noch am arbeiten sein, wenn die Maske bereits offen ist?
    Sorry, aber ich kann mit der dämlichen Formulierung "auf einen Thread verweisen" nichts anfangen: meinst Du damit jetzt es wird ein Thread gestartet oder nicht?

    Wenn Du im FormLoad-Event einen Thread startest der viel Code abarbeitet, dann geht die Form auf und der Thread wird im Hintergrund abgearbeitet.

    Wenn Du da einfach nur viel Code ohne anderen Thread zu starten abarbeitest, dann wird sich die Form auch erst öffnen, wenn diese ganzen Befehle abgearbeitet wurden.

    Und ja, dieses gilt für BackgroundWorker gleichermaßen wie für Threads. Anders sieht es bei Timern aus, aber das klamüser ich nur auf Zuruf auseinander.

    Gruß FatFire

    PS: Für die des Englischen mächtigen hier eine vorzügliche Erklärung der Timer-Problematik.