.Net Threading

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • .Net Threading

      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

      Quellcode

      1. Imports System.Threading

      und in die Class kommen 2 variablen

      Quellcode

      1. Dim ShutDownTime As DateTime
      2. 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

      Quellcode

      1. Dim Year As Long = 0
      2. Dim Month As Long = 0
      3. Dim Day As Long = Now.Day + TextBox1.Text
      4. Dim Hour As Long = Now.Hour + TextBox2.Text
      5. Dim Minute As Long = Now.Hour + TextBox3.Text
      6. If Minute > 60 Then
      7. Do Until Minute <= 60
      8. Hour += 1
      9. Minute -= 60
      10. Loop
      11. End If
      12. If Hour > 24 Then
      13. Do Until Minute <= 24
      14. Month += 1
      15. Hour -= 24
      16. Loop
      17. End If
      18. ShutDownTime = New Date(Year, Month, Day, Hour, Minute, Now.Second)
      Alles anzeigen

      kurz um er rechnet nur die zeit aus

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

      Quellcode

      1. Sub CheckTime()
      2. End Sub

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

      Quellcode

      1. TimeThread = New Thread(AddressOf CheckTime)

      damit wird ein neuer thread geöffnet und mit

      Quellcode

      1. TimeThread.Start()

      beginnt er dann
      gut in die sub kommt dann

      Quellcode

      1. While Now <> ShutDownTime
      2. Thread.Sleep(10)
      3. End While
      4. Shell("shutdown -s -t 30")
      5. 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

      Quellcode

      1. TimeThread.Start()

      mit

      Quellcode

      1. Application.ExitThread()

      somit wird der hauptthread der die form am laufen hat beendet (spart Ram)
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )