![]() NOTE: update UI elements using Invoke()/BeginInvoke() if required. If (_stoppingEvent.WaitOne(_monitoringInterval)) Wait for time interval or cancellation event. Every team member gets their own timesheet, for a non confusing and streamlined work time entries. Choose between a simpler timesheet view or a work timer view where you can describe your work hours or attach files. Throw new InvalidOperationException("Already running") Start tracking your work time by simply adding the work hours to the timesheet or by clicking Start. _monitoringInterval = monitoringInterval Public HardwareMonitor(TimeSpan monitoringInterval) Private readonly ManualResetEvent _stoppedEvent = new ManualResetEvent(false) Private readonly ManualResetEvent _stoppingEvent = new ManualResetEvent(false) Private readonly TimeSpan _monitoringInterval Private readonly object _locker = new object() Please note I have not tested it, but it could show you the idea.
0 Comments
Leave a Reply. |