Pro_Unit

StartTmer

May 10th, 2020
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.73 KB | None | 0 0
  1. private void StartTimer(TimeSpan waitTime, Action onComplete, Action<TimeSpan> onUpdate)
  2.         {
  3.             TimeSpan second = TimeSpan.FromSeconds(1);
  4.             TimeSpan timer = TimeSpan.Zero;
  5.             IDisposable disposable = null;
  6.            
  7.             disposable = Observable.Timer(second)
  8.                 .Repeat()
  9.                 .Subscribe(_ =>
  10.                 {
  11.                     timer.Add(second);
  12.  
  13.                     onUpdate?.Invoke(timer);
  14.  
  15.                     if (timer >= waitTime)
  16.                     {
  17.                         disposable?.Dispose();
  18.  
  19.                         onComplete?.Invoke();
  20.  
  21.                         timer = TimeSpan.Zero;
  22.                     }
  23.                 });
  24.         }
Add Comment
Please, Sign In to add comment