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


C# IObservable.Take方法代码示例

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


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

示例1: Do

        public static async Task Do(IObservable<string> input)
        {
            var config = Config();

            using (config.Root
                .Elements("dependencies")
                .SelectMany(d=>d.Elements("dependency"))
                .Select(dependency => new {
                    to = dependency.Element("to"),
                    from = dependency.Element("from")})
                //combine the latest values from the from and to tags
                .Select(dependency =>
                    //keep re trying if the write fails
                    Observable.Retry(                   
                        Observable.CombineLatest<EasyUAMonitoredItemChangedEventArgs>(
                            new List<IObservable<EasyUAMonitoredItemChangedEventArgs>> {
                                ReadValues(dependency.from),
                                ReadValues(dependency.to)
                            })
                         //if both tags have been read ok..
                         .Where(results => results.First().Succeeded && results.Last().Succeeded)
                         // and there values are different
                         .Where(results => results.First().AttributeData.Value != results.Last().AttributeData.Value)
                         // select the from tags value
                         .Select(results => results.First().AttributeData.Value)
                         //and write to the to tag
                         .Select(WriteValue(dependency.to)))
                     .Subscribe()
            ).ToList().Disposer())
                await input.Take(1);
        }
开发者ID:gilesbradshaw,项目名称:OpcClient,代码行数:31,代码来源:Dependency.cs

示例2: planetOrbitLinq

        IObservable<ShapeType> planetOrbitLinq(IObservable<long> ticks,
                                IObservable<ShapeType> sunOrbit,
                                string planetName)
        {
            // This implementation does not propagate dispose
            IObservable<ShapeType> planetOrbit =
                    from t in ticks
                    from sunLoc in sunOrbit.Take(1)
                    let degree = (int)(t * earthYear / planets[planetName].yearInEarthDays)
                    let op = output("t = {0}, degree = {1}", t, degree)
                    select planetLocation(sunLoc, degree, planetName);

            return planetOrbit;
        }
开发者ID:mindis,项目名称:rticonnextdds-reactive,代码行数:14,代码来源:solarsystem.cs


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