public async Task Test() { _counter.Set(1); _valid.Set(true); var checker = new MockPostsChecker(TimeSpan.FromMilliseconds(20)); checker.OnCheck.Subscribe(OnCheck); var manager = new PostsWatcher( TimeSpan.FromMilliseconds(10), checker); manager.StartWatch(); while (true) { if (_counter.Get() == 3 || !_valid.Get()) { break; } await Task.Delay(_delay); } }
private void AddMediaManagerComponents(IServiceCollection services) { IPostOperationValidator validator = new PostOperationValidator(); services.AddSingleton(validator); IProvidersOperator @operator = new ProvidersOperator(); services.AddSingleton(@operator); IPostsChecker postsChecker = new PostsChecker(validator, @operator); services.AddSingleton(postsChecker); var intervalSeconds = Convert.ToDouble( Configuration["MediaManager:WatchIntervalSeconds"]); IPostsWatcher postsWatcher = new PostsWatcher( TimeSpan.FromSeconds(intervalSeconds), postsChecker); services.AddSingleton(postsWatcher); }