本文整理汇总了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);
}
示例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;
}