Beispiel #1
0
 public SequenceObserver(IInputPhysicalElement physicalElement, int delay)
 {
     _cancellationTokenSource = new CancellationTokenSource();
     _task = Task.Factory.StartNew(async() =>
     {
         while (!_cancellationTokenSource.Token.IsCancellationRequested)
         {
             Push(new Timestamped <int>(physicalElement.Read(), DateTime.Now.Ticks));
             await Task.Delay(delay);
         }
     }, TaskCreationOptions.LongRunning);
 }
Beispiel #2
0
 public static IDisposable Observe(this IInputPhysicalElement element, int milliseconds, Action <Timestamped <int> > callback)
 {
     return(new SequenceObserver(element, milliseconds).Subscribe(new DelegateObserver(callback)));
 }