Serverholder
Eine zentrale (Server)-Klasse, die auch unter ASP.NET dank Timer "ewig" lebt.
Public Class ServerHolder
' Enthält die einzige Serverinstanz und kann diese an andere Klassen übergeben
Shared ServerinstanceExists As Boolean = False
' Diese Variable enthält die einzige Serverinstanz
Shared WithEvents mServer As TMServer
' Gibt die (einzige) Instanz der Serverklasse zurück
' Wenn die Serverinstanz nicht existiert, wird Nothing zurückgegeben
Shared Function GetServer() As TMServer
If Not ServerinstanceExists Then
mServer = New Server
ServerinstanceExists = True
End If
Try
Return mServer
Catch ex As Exception
MsgBox("Es konnte keine Serverinstanz übergeben werden" & vbCrLf & ex.Message)
Return Nothing
End Try
End Function
End Class
-----------------------------------------
Public Class Server
Shared serverIsRunning As Boolean = False
Private loopTimer As System.Timers.Timer
'Variablen, Methoden usw.
Private mStatus As ...
Public Property Status() As ...
...
Public Sub New()
If serverIsRunning Then
MsgBox("Server läuft bereits!")
Exit Sub
End If
serverIsRunning = True
'Erzeuge die Timerinstanz
loopTimer = New System.Timers.Timer
'übergib den Behandler für den Timer
AddHandler loopTimer.Elapsed, AddressOf OnTimedEvent
' Setze Interval
loopTimer.Interval = 10000
loopTimer.Enabled = True
' Der Timer lebt bis zum "Ende"
GC.KeepAlive(loopTimer)
...
End Sub
End Class
----------------------------------------------------
'Zugriff auf die einzige Serverinstanz
Class Irgendwas
Shared Server As Server = ServerHolder.GetServer
...
Dim x = Server.PublicVar
Server.PublicMethode()
...
End Class
Labels: ASP.NET, Instanzübergabe, Server, Timer


0 Kommentare:
Kommentar veröffentlichen
Links zu diesem Post:
Link erstellen
<< Startseite