Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Konsolenanwendung - Timer

Empfohlene Antworten

Veröffentlicht

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!

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

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

@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

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. ;)

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

Danke für den Link,

die Openbooks kenne ich, habe allerdings bisher nur dieses Buch durchgearbeitet Einstieg in Visual Basic 2008. Aber werde mich dransetzen auch das andere Buch durchzuarabeiten (sieht deutlich umfangreicher aus ;)).

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.