| Forum: VB.NET | 
																Thema: 
																	AW: AW: AW: VB 2005 - Zeitgesteuerte Routine | 
																	Von: 
																		M Merlin (
																	12.04.2007 16:52) | 
														
													
												
            
		Ich hab da mal mit dem Threading.Timer experementieret...
Irgenwie funktioniert das nicht....
Der wird trotz dem "Dispose" immer wieder aufgerufen...
 Private MyTimerDelegate As New Threading.TimerCallback(AddressOf MyTimer)
 Private MyTmr As Threading.Timer
 Private TimeNow As String = String.Empty
 Private myMi As MethodInvoker
'z.B.
' PstrTimeToDo = "12.04.2007 15:30:00"
Private Sub MyMain()
   
    NewTimer()
  End Sub
Private Sub NewTimer()
    myMi = New MethodInvoker(AddressOf SetTime)
    MyTmr = New Threading.Timer(MyTimerDelegate, Nothing, 0, Periode)
  End Sub
  Private Sub MyTimer(ByVal State As Object)
    SyncLock Me
      TimeNow = Now.ToString
    End SyncLock
    Me.lblTimer.Invoke(myMi)
    If CType((TimeNow), Date).ToShortTimeString >= CType(PstrTimeToDo, Date).ToShortTimeString Then
      SaveData()
    End If
  End Sub
  Private Sub SetTime()
    Me.lblTimer.Text = TimeNow
  End Sub
 Private Sub SaveData()
    MyTmr.Dispose()
'Warum funktioniert hier nicht den Timer zu beenden...?
'Irgendwie wird der immer wieder aufgerufen
    MsgBox("Zeit erreicht - hier Daten speichern")
    PstrTimeToDo = CType(Now.AddDays(1).ToShortDateString & " " & PstrHour & ":" & Format(PstrMinute, "00"), Date)
    'NewTimer()
  End Sub
Hat jemand eine Idee was ich machen muss, damit das dispose funktioniert...?
Danke
	
	
													
												
            
														
		
			
																
																	
																		| Betreff | 
																		Von | 
																		Datum | 
																	 
															
		
			| 
								 |  
									
										
											
												   | 
												
													
														AW: AW: AW: AW: VB 2005 - Zeitgesteuerte Routine
													
													
														
															
																| Dim serviceTimer As New System.Timers.Timer()<br><br>serviceTimer.Interval = 1000<br>serviceTimer.Enabled = True<br>AddHandler serviceTimer.Elapsed, AddressOf Me.working<br><br>Private Sub working(ByVal sender As... | 
																  | 
															 
															
																  | 
																  | 
														  
													 
												 | 
											 
										 
									 | 
									Bernhard
											Grojer
										
									 | 
									12.04.2007 19:06 | 
								 
							
		
			| 
								 |  
									
										
											
												   | 
												
													
														AW: AW: AW: AW: AW: VB 2005 - Zeitgesteuerte Routine
													
													
														
															
																| OK.<br><br>Folgendes habe ich gelseen:<br><br>Zitat:<br>Wenn man beim System.Timers.Timer das Interval neu setzt, wird dieses nach dem nächsten Auslösen des Timers verwendet:<br><br>Dann würde das aber nicht... | 
																  | 
															 
															
																  | 
																  | 
														  
													 
												 | 
											 
										 
									 | 
									M
											Merlin
										
									 | 
									13.04.2007 08:32 | 
								 
							
		
			| 
								 |  
									| 
										
									 | 
									Bernhard
											Grojer
										
									 | 
									13.04.2007 11:45 | 
								 
							
		
			| 
							 |   
							 | 
		
	
							Antworten
							
							
							Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!