• Hallo
    in diesem Tutorial zeige ich mal wie die grundlagen des Threadings gehen

    also zuerst einmal zur Theorie:
    Ein programm Läuft standartmässig nur in einem Thread. Das programm macht erst weiter wenn die aktuelle aufgebe erfüllt ist(Timer sind ausnahmen).
    erstellt man jetst einen neuen Thread so wird alles was darin passiert paralell zu dem HauptThread laufen also sagen wir mal im einen thread ist eine While schleife, Das Programm macht erst weiter wenn die schleife vorbei ist. währendessen will man aber noch andere funktionen des programmes nutzen
    Lösung: man setzt die Wile schleife in einen eigenen Thread dass sie im hintergrun neben dem programm läuft

    nun zum proktischen
    ich werde anhand eines programms was zu einer bestimmten zeit den pc runterfährt die grundlagen des threadings erklären
    als erstes breauchen wir eine form mit 3 textboxen
    eine für die anzahl der tage bis shutdown, eine für die anzahl der stunden und eine für minuten
    und einen button
    nun wechseln wir in den code editor und importieren die

    Code
    Imports System.Threading


    und in die Class kommen 2 variablen

    Code
    Dim ShutDownTime As DateTime
    Dim TimeThread As Thread


    das erste wird die zeit sein an der runtergefahren wird und das 2te der thread in dem überprüft wird
    En thread kann nur auf Variablen/Subs/Classes zugreifen die entweder algemein sind oder im Thread erstellt wurden (also kann ein 2ter thread nicht einfach so auf textboxen zugreifen) d.h müssen wir das datum in einer allgemeinen variable speichern

    so in den Button kommt erst einmal der code zum ausrechnen der uhrzeit des shutdown


    kurz um er rechnet nur die zeit aus

    dann rufen wir den thread auf
    als erstes erstellen wir eine neue sub

    Code
    Sub CheckTime()
    End Sub


    die wird dann unser thread benutzen
    dann erstellen wir erstmal einen neuen thread

    Code
    TimeThread = New Thread(AddressOf CheckTime)


    damit wird ein neuer thread geöffnet und mit

    Code
    TimeThread.Start()


    beginnt er dann
    gut in die sub kommt dann

    Code
    While Now <> ShutDownTime
                Thread.Sleep(10)
    End While
    Shell("shutdown -s -t 30")
    End


    das ist soviel wie solange nicht die gesuchte zeit ist soll er 10 millisekunden schlafen (besser für PC) und wenn die zeit ist dann soll er die shutdown ausführen.
    das end am ende ist damit die gesamte application mit allen threads beendet wird

    nun soll ja das fenster verschwinden das geht noch unter

    Code
    TimeThread.Start()


    mit

    Code
    Application.ExitThread()


    somit wird der hauptthread der die form am laufen hat beendet (spart Ram)

    Zitat von Steve Jobs

    Stay hungry - stay foolish.



  • Sieht gut aus ;)
    Vllt noch ein paar Bilder dann wär perfekt

    [CENTER]Ziele : D
    [COLOR="Lime"]10 Posts[X]
    50 Posts[X]
    100 Posts[X][/COLOR]
    [COLOR="Red"]250 Posts[ ]
    500 Posts[ ][/COLOR]
    [/CENTER]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!