schlumpfger Geschrieben 25. Oktober 2007 Geschrieben 25. Oktober 2007 Hallo Leute, Ich sitze hier den ganzen Tag schon über folgendes Problem: Ich erstell einen Dienst mit VB.NET der nach einem Intervall eine Datei schreiben soll. Die Datei soll erstmal leer sein. Egal was ich probiere. Der Dienst läuft, aber eine Datei wird nicht erzeugt. Habe ich nen Denkfehler hier? Imports System.IO Imports System.Timers Public Class DwI2Excel Protected Overrides Sub OnStart(ByVal args() As String) Timer1.Enabled = True End Sub Protected Overrides Sub OnStop() Timer1.Enabled = False End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick File.Create("C:\test.txt") End Sub End Class Der Timer hat Testweise ein Intervall von 10000 msec. Was mach ich falsch? Ist bestimmt was blödes... Danke
realgun Geschrieben 25. Oktober 2007 Geschrieben 25. Oktober 2007 Hi, bei System.Timers.Timer kenne ich kein "Tick"-Ereignis, du meinst bestimmt das "Elapsed"-Ereignis. Und dem hast Du noch keine Methode "deligiert" (Addhandler...). (Das "Tick"-Ereignis gibts beim "Windows.Forms.Timer"). Infos und ein Beispiel zu System.Timers bekommst Du in der MSDN.
schlumpfger Geschrieben 26. Oktober 2007 Autor Geschrieben 26. Oktober 2007 So hatte ich es vorher versucht. Das Ergebnis ist das gleiche. Der Dienst läuft springt aber nicht in die Methode. Imports System.IO Imports System.Timers Public Class DwI2Excel Dim aTimer As New System.Timers.Timer() Protected Overrides Sub OnStart(ByVal args() As String) Dim Intervall As Integer = 10000 AddHandler aTimer.Elapsed, AddressOf OnTimedEvent aTimer.Interval = Intervall aTimer.Enabled = True 'GC.KeepAlive(aTimer) End Sub Protected Overrides Sub OnStop() aTimer.Enabled = False End Sub Private Shared Sub OnTimedEvent(ByVal source As Object, ByVal e As ElapsedEventArgs) File.Create("C:\test.txt") End Sub End Class
motom001 Geschrieben 29. Oktober 2007 Geschrieben 29. Oktober 2007 Schreib doch mal den Timer Start mit in die Form1_Load... Oder setzt den Timer von vorherein auf Enable = True Sonst fängt der Timer ja nicht an mit zählen... Ansonsten so: Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Timer1.Enabled = True End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick My.Computer.FileSystem.WriteAllText("test.txt", "Das wäre jetzt der Text um " & Date.Now & Environment.NewLine, True) Me.TextBox1.Text += "Das wäre jetzt der Text um " & Date.Now & Environment.NewLine 'man kann ebenfalls eine leere Datei mit 'My.Computer.FileSystem.WriteAllText("test.txt", "", False) 'erstellen - Das FALSE bzw. TRUE zum Schluss bedeutet dass der Text der Datei angehangen wird oder nicht End Sub End Class
Amstelchen Geschrieben 29. Oktober 2007 Geschrieben 29. Oktober 2007 Schreib doch mal den Timer Start mit in die Form1_Load... [...] Public Class Form1 Private Sub Form1_Load du hast aber schon mitbekommen, dass es sich bei der angesprochenen thematik um einen dienst und keine forms-anwendung handelt? s'Amstel
motom001 Geschrieben 29. Oktober 2007 Geschrieben 29. Oktober 2007 upps, überlesen... Ich nehm alles zurück und behaupte das Gegenteil.... Sorry...
Trux Geschrieben 30. Oktober 2007 Geschrieben 30. Oktober 2007 wenn es dir "nur" um eine zyklische abarbeitung geht nimm doch einfach einen Thread... Threading Tutorial (C#)
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden