返回首页

大家好,

我想知道,如果用户是在线还是离线,
和我用计时器来更新数据库中的用户最后一次访问,每5秒,

我在ASP.NET 2.0中使用System.Timers.Timer,

当我使用它,我注意到,在新的线程中运行的推移事件,因为它不会引起回发事件,火灾,但问题是,当我关闭浏览器的推移事件仍在提高,并没有停止。

我要当浏览器关闭或停止计时器,当我浏览到另一个网站,有没有任何办法阻止它吗?

还当我退出,定时器不停止执行的声明_timer.Stop()。

这是所有的代码:


public partial class MainMasterPage : System.Web.UI.MasterPage

{

    protected System.Timers.Timer _timer;

 

    protected void Page_Init(object sender, EventArgs e)

    {

        _timer = new System.Timers.Timer(5000);

 

        _timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);

    }

 

    protected void Page_Load(object sender, EventArgs e)

    {

        if (Request.IsAuthenticated)

        {

            _timer.Start();

        }

        else

        {

            _timer.Stop();

        }

    }

 

    private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)

    {

        // Code here for update User last visit in database

    }

}

| MrProgrammer_78

回答

评论会员: 时间:2