当前位置: 首页>>代码示例>>C#>>正文


C# ExecutionContext.WhenAnyValue方法代码示例

本文整理汇总了C#中ExecutionContext.WhenAnyValue方法的典型用法代码示例。如果您正苦于以下问题:C# ExecutionContext.WhenAnyValue方法的具体用法?C# ExecutionContext.WhenAnyValue怎么用?C# ExecutionContext.WhenAnyValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ExecutionContext的用法示例。


在下文中一共展示了ExecutionContext.WhenAnyValue方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CreateShadowExecutionContext

        private static ExecutionContext CreateShadowExecutionContext(ExecutionContext context)
        {
            var shadowExecutionContext = new ExecutionContext(context.SkipAhead);
            shadowExecutionContext.SetCurrentExercise(context.CurrentExercise);
            shadowExecutionContext.SetCurrentSet(context.CurrentSet);
            shadowExecutionContext.SetCurrentRepetition(context.CurrentRepetition);

            // if either context is cancelled, cancel the other
            context
                .WhenAnyValue(x => x.IsCancelled)
                .Where(x => x)
                .Subscribe(_ => shadowExecutionContext.Cancel());
            shadowExecutionContext
                .WhenAnyValue(x => x.IsCancelled)
                .Where(x => x)
                .Subscribe(_ => context.Cancel());

            // if either context is paused, pause the other
            context
                .WhenAnyValue(x => x.IsPaused)
                .Subscribe(x => shadowExecutionContext.IsPaused = x);
            shadowExecutionContext
                .WhenAnyValue(x => x.IsPaused)
                .Subscribe(x => context.IsPaused = x);

            return shadowExecutionContext;
        }
开发者ID:gregjones60,项目名称:WorkoutWotch,代码行数:27,代码来源:ParallelAction.cs

示例2: execute_async_skips_ahead_if_the_context_has_skip_ahead_even_if_the_context_is_paused

        public void execute_async_skips_ahead_if_the_context_has_skip_ahead_even_if_the_context_is_paused(int delayInMs, int skipInMs)
        {
            var delayService = new DelayServiceMock();
            var totalDelay = TimeSpan.Zero;

            delayService
                .When(x => x.DelayAsync(It.IsAny<TimeSpan>(), It.IsAny<CancellationToken>()))
                .Do<TimeSpan, CancellationToken>((t, ct) => totalDelay += t)
                .Return(Observable.Return(Unit.Default));

            var sut = new WaitActionBuilder()
                .WithDelayService(delayService)
                .WithDelay(TimeSpan.FromMilliseconds(delayInMs))
                .Build();

            using (var context = new ExecutionContext(TimeSpan.FromMilliseconds(skipInMs)) { IsPaused = true })
            {
                var progress = context
                    .WhenAnyValue(x => x.Progress)
                    .Skip(1)
                    .CreateCollection();

                sut.ExecuteAsync(context);

                Assert.Equal(TimeSpan.FromMilliseconds(skipInMs), progress.First());
            }
        }
开发者ID:reactiveui-forks,项目名称:WorkoutWotch,代码行数:27,代码来源:WaitActionFixture.cs


注:本文中的ExecutionContext.WhenAnyValue方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。