2016-10-07 17 views
0

タイマーを使用してセッション変数を削除します。私はこのクラスを持っています。タイマー付きのセッション変数を削除することはできますか?

Public Class SessionKiller 
    Private WithEvents mclsTimer As Timer 
    Private mstrSessionKey As String 

    Public Sub New(ByVal lstrSessionKey As String) 
     mstrSessionKey = lstrSessionKey 

     mclsTimer = New Timer(3000) 
     mclsTimer.AutoReset = False 
     mclsTimer.Start() 
    End Sub 

    Private Sub OnTimedEvent(ByVal lobjSource As Object, lclsEvent As ElapsedEventArgs) Handles mclsTimer.Elapsed 
     HttpContext.Current.Session.Remove(mstrSessionKey) 
    End Sub 
End Class 

しかし、変数currentは何もありません。この方法でセッション変数を削除することは可能ですか?

+0

セッションを取得/作成するコードを追加してください – theBugger

答えて

0

私はsession varへのポインタを使って解決しました。

Public Class SessionKiller 
    Private WithEvents mclsTimer As Timer 
    Private mstrSessionKey As String 
    Private mclsSession As HttpSessionStateBase 

    Public Sub New(ByVal lstrSessionKey As String, _ 
        ByVal lclsSession As HttpSessionStateBase) 
     mstrSessionKey = lstrSessionKey 
     mclsSession = lclsSession 

     mclsTimer = New Timer(3000) 
     mclsTimer.AutoReset = False 
     mclsTimer.Start() 
    End Sub 

    Private Sub OnTimedEvent(ByVal lobjSource As Object, lclsEvent As ElapsedEventArgs) Handles mclsTimer.Elapsed 
     mclsSession.Remove(mstrSessionKey) 
    End Sub 
End Class 
関連する問題