Zum Inhalt springen

Konsolenanwendung - Timer


Empfohlene Beiträge

Geschrieben

Hi,

ich habe folgendes Problem: Ich will eine Konsolenanwendung in VB.net programmiereb, in der die Ausgabe console.writeLine("Hello world") sekündlich wiederholt wird.

Von den Windows Forms weiß ich, dass man z.B. einen Timer aus der Toolbox nehmen könnte aber der steht einem ja nicht in einer Konsolenanwendung zur Verfügung.... danke für Hilfe im vorraus!

Geschrieben

Hallo,

Du kannst den System.Timer nutzen.

Code aus der Doku:


Imports System

Imports System.Timers


Public Class Timer1


    Private Shared aTimer As System.Timers.Timer


    Public Shared Sub Main()

        ' Normally, the timer is declared at the class level,

        ' so that it stays in scope as long as it is needed.

        ' If the timer is declared in a long-running method,  

        ' KeepAlive must be used to prevent the JIT compiler 

        ' from allowing aggressive garbage collection to occur 

        ' before the method ends. (See end of method.)

        'Dim aTimer As System.Timers.Timer


        ' Create a timer with a ten second interval.

        aTimer = New System.Timers.Timer(10000)


        ' Hook up the Elapsed event for the timer.

        AddHandler aTimer.Elapsed, AddressOf OnTimedEvent


        ' Set the Interval to 2 seconds (2000 milliseconds).

        aTimer.Interval = 2000

        aTimer.Enabled = True


        Console.WriteLine("Press the Enter key to exit the program.")

        Console.ReadLine()


        ' If the timer is declared in a long-running method, use

        ' KeepAlive to prevent garbage collection from occurring

        ' before the method ends.

        'GC.KeepAlive(aTimer)

    End Sub


    ' Specify what you want to happen when the Elapsed event is 

    ' raised.

    Private Shared Sub OnTimedEvent(source As Object, e As ElapsedEventArgs)

        Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime)

    End Sub

End Class

Gruß,

Thomas

Geschrieben (bearbeitet)

Da ich noch ein Newbie bin versteh ich daraus leider nicht so viel :(...

Ich will quasi das hier:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Timer1.Start()

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Timer1.Tick

ausgabe.Text = ausgabe.Text & "Hello world"

End Sub

Für eine Konsolenanwendung

Bearbeitet von DFens
Geschrieben (bearbeitet)

@Argbeil: ich denke er kennt sich noch überhaupt nicht mit solchen dingen aus und ist es gewöhnt alles in den Designer zu ziehen und mit einem Doppelklick in den Quellcode zu kommen. Also sind kommentare durchaus legitim. Ich werd mal'n kommentiertes snippet posten.

Du kannst es natürlich auch kürzer schreiben. Das würde dann in etwa so aussehen:


Module Module1


    WithEvents timer1 As New System.Timers.Timer


'hier wurde der Timer1 as timer deklariert mit allen events die zu dem timer gehören


    Sub Main()

'in der main Methode wird der timer gestartet

        timer1.Enabled = True

        timer1.Start()


'das console.readkey sorgt dafür das sich das fenster nicht direkt nach dem öffnen wieder schließt!

        Console.ReadKey()

    End Sub


    Private Sub timer1_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles timer1.Elapsed


'das wäre dann das event welches du als tick event des timer kennst. 

'Dieser Code wird ausgeführt wenn das Intervall erreicht ist  


   Console.WriteLine("hola hola")


    End Sub

End Module

Kleiner Hinweis mitdem du dir die schreibarbeit für das elapsed event sparst.

Sobald du den Timer deklariert hast kannst du über die 2 comboboxen, welche direkt über dem Quelltexteditor stehen, den eventtext einfügen.

Gehe dazu auf die Combobox die aktuell folgenden Itemtext selektiert hat => (Allgemein)

Da müsste ein Eintrag verfügbar sein, der exakt so heißt wie die variable, die du für die deklaration des Timers genutzt hast. Klick darauf.

Jetzt geh in die zweite Combobox die rechts daneben positioniert ist.

Da ist ein eintrag drin der wie folgt heißt : Elapsed

Klick wiederrum auf diesen Eintrag.

So jetzt wurde das [Timervariable].Elapsed ereignis, welches du als timertick kennen solltest, in deinem Quellcode hinzugefügt!

Lg

Gateway

Bearbeitet von Gateway_man
Geschrieben

Super, danke dir Gateway_man :).

Lagst mit deiner Vermutung genau richtig und das mit den 2 Comboboxen wusste ich auch noch nicht. Schön was dazu gelernt zu haben. ;)

Geschrieben
Super, danke dir Gateway_man :).

Lagst mit deiner Vermutung genau richtig und das mit den 2 Comboboxen wusste ich auch noch nicht. Schön was dazu gelernt zu haben. ;)

Kein Thema. Aber Argbeil hat mit der Aussage "Lern erstmal die Grundlagen" vollkommen recht.

Hier im NET Forum haben wir eine meines erachtens nach schon recht beachtliche Liste von Tutorials rund um .NET Programmierung.

Ich empfehle dir aus eigener Erfahrung folgendes Tutorial mal durchzumachen:

Klick mich!

Denn wenn du jetzt irgendwo in der Mitte anfängst, ist die warscheinlichkeit sehr sehr groß, das du später überhaupt nichtmehr weiterkommst da dir die Grundlagen fehlen.

Ich kenne das aus eigener Erfahrung und weiß, die Versuchung direkt mittendrin anzufangen ist sehr groß. :D

Frei nach den Sprüchen:

- "Don't jump the gun"

- "Step by Step"

Lg

Gateway

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...