我有一个应用程序,我将在其中显示一个计时器。
用户将执行一个事件并应在一定时间内完成它。我目前有一个计时器,可以显示他们的时间滴答作响,但我现在想要的是总累积时间。因此,每次新事件开始时,完成事件的时间都会添加到它们的累积时间中。然后,当他们执行事件时,时间会在累积的时间上打勾。
这就是我所拥有的“当前计时器”
u.StartingTime = u.ChangeOverStandard;
u.CurrentChangeOverTime = u.StartingTime - (DateTime.Now - u.ChangeOverStart);
所有这些字段都是时间跨度。这非常适合他们的“当前”计时器
但是我需要一个“总”计时器,它要么显示一个正的时间跨度值……如果他们在他们应该完成之前完成……或者如果他们花费的时间太长,则显示一个负的时间跨度值。
编辑:
所以我想实现这个:
例如:对于“事件 1”,用户有 30 秒。结束。然后用户有一个“TotalTimespan”属性= 30。这个总数随着事件计时器而减少。假设他在 24 秒内完成。这意味着他在 TotalTimespan 中还剩 6 秒。然后“event2”必须在 40 秒内完成。所以在 event2 开始时,TotalTimespan = TotalTimespan(6) + 40. = 46。如果用户使用 60 秒,那么 TotalTimespan = 46 -60 = -14。
“定时器”不是定时器,不能用作定时器。它在后台工作人员上运行,后台工作人员也在进行其他一些计算。所以我不能一秒一秒地取消时间。
在每个新活动中,我都尝试过
u.AccumulatedTime += u.ChangeOverStandard;
接着
u.AccumulatedTime -= u.StartingTime - (DateTime.Now - u.ChangeOverStart);
但显然这行不通,因为它通过我的循环从每一轮的累积时间中花费总经过的时间
DateTime.Now - u.ChangeOverStart
^^会给我从活动开始到现在经过的时间,所以这是我想要的吗?
u.AccumulatedTime -= DateTime.Now - u.ChangeOverStart;