2016-10-07 3 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 
Смежные вопросы