C# 选择接收超时? 可观测间隔(时间跨度从秒(5)) .超时(dueTime:DateTimeOffset.UtcNow, 其他:可观察。回报(-1)) .Subscribe(Console.WriteLine);
当超时时,上面的代码段将返回-1。但是,我需要一些可以映射序列的东西,比如select操作符 我想我需要一个C# 选择接收超时? 可观测间隔(时间跨度从秒(5)) .超时(dueTime:DateTimeOffset.UtcNow, 其他:可观察。回报(-1)) .Subscribe(Console.WriteLine);,c#,.net,system.reactive,C#,.net,System.reactive,当超时时,上面的代码段将返回-1。但是,我需要一些可以映射序列的东西,比如select操作符 我想我需要一个 Observable.Interval(TimeSpan.FromSeconds(5)) .Timeout(dueTime: DateTimeOffset.UtcNow, other: Observable.Return<long>(-1)) .Subscribe(Console.WriteLine); .Timeout(DateTimeOffset dueTime,Fu
Observable.Interval(TimeSpan.FromSeconds(5))
.Timeout(dueTime: DateTimeOffset.UtcNow,
other: Observable.Return<long>(-1))
.Subscribe(Console.WriteLine);
.Timeout(DateTimeOffset dueTime,Func Observable.Return(i*i.ToString()))
.Subscribe(Console.WriteLine);
有人能告诉我这件事吗?谢谢。那么:
Observable.Interval(TimeSpan.FromSeconds(5))
.Timeout<long, string>(dueTime: DateTimeOffset.UtcNow,
other: i=> Observable.Return<string>(i * i.ToString()))
.Subscribe(Console.WriteLine);
您可以将DoWork实现为:
Observable.Interval(TimeSpan.FromSeconds(5))
.SelectMany(x => DoWork().Timeout(...))
.Subscribe(Console.WriteLine);
IObservable DoWork()
{
返回可观察的.Start(()=>Thread.Sleep(1000));
}
Observable.Interval(TimeSpan.FromSeconds(5))
.SelectMany(x => DoWork().Timeout(...))
.Subscribe(Console.WriteLine);
IObservable<Unit> DoWork()
{
return Observable.Start(() => Thread.Sleep(1000));
}