【问题标题】:stopwatch time per user in c# asp.net mvc applicationc#asp.net mvc应用程序中每个用户的秒表时间
【发布时间】:2015-05-24 04:45:22
【问题描述】:

我的 asp.net mvc 应用程序中有一组用户。

当任何用户启动秒表时,即使在用户注销后我也需要秒表继续。并运行它直到他不再登录并单击停止。

我可以在点击开始按钮时启动它

        stopWatch = new Stopwatch();
        stopWatch.Start();

但我如何跟踪用户?这样用户注销然后登录后,他会看到经过的时间,包括他在应用程序中不活动的时间?

所以在用户登录并点击秒表后,他应该得到包括整个时间在内的经过时间。

TimeSpan ts = stopWatch.Elapsed;

使用角度指令/javascript计时器更好吗?

【问题讨论】:

  • 您可以保存用户注销的日期和时间,然后在他登录后通过简单的数学运算,获取全部时间。
  • 这是一个不错的选择。谢谢

标签: c# asp.net stopwatch


【解决方案1】:

为什么要使用Stopwatch 来做类似的事情? Stopwatch 旨在提供高分辨率的时间测量,我怀疑您的用户需要知道精确到几纳秒的时间...
From MSDN:

提供一组方法和属性,您可以使用它们来准确测量经过的时间。

只需保存DateTime.Now()、按钮的状态(即开始、停止)和用户ID,然后当具有相同ID的用户再次按下该按钮时,只需计算时间差。

TimeSpan elapsedTime = FirstClickDateTime - SecondClickDateTime;

那么你所要做的就是formatTimeSpan对象的显示。

【讨论】:

  • 实际上我打算连续向用户显示经过的时间。如果我按照您所说的方式进行操作,那么当用户单击停止时,我可以向他显示经过的时间,但是连续显示经过的时间呢?
  • 你的意思是启动一个计时器?
  • 用已经过去的时间启动一个计时器,我猜想在客户端继续计时器
  • 我明白了。当然,它必须在客户端。但是自从我的 javascript 时代以来已经很长时间了,所以我不太确定如何在 js 中编写这样的东西。但是,我相信您可以找到一些可以从零以外的值开始的内置计时器(可能在 jquery 中)。如果没有,那就自己写一个。应该没那么难。
  • 我想我已经得到了答案。在使用 angularjs 计时器的客户端中,我可以向用户显示经过的时间,在服务器端,我可以根据您的回答进行操作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-30
  • 2011-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多