我想要秒表功能:
如果我使用System.Diagnostics.Stopwatch
,我可以开始/停止/暂停/重置,我可以查询(拉)其经过的时间,但我没有“一秒钟过去”(推)事件;
如果我使用System.Timers.Timer
,我可以附加到Elapsed
事件,但Stop
实际上不会停止计算时间,而只是停止提升Elapsed
事件
问:
我正在考虑使用来自Reactive Extensions的Observable.Timer
或Observable.Interval
,但我不知道如何停止/暂停/重置它,而且我宁愿公开IObservable<TimesTamp>
IObservable<long>
。
(更新)
此外,还有this answer建议使用StopWatch
来衡量时间,并使用快速勾选的Timer
更新用户界面,但仍然感觉就像是一种解决方法。