Signalr 如何设置区间可观测的起始值

Signalr 如何设置区间可观测的起始值,signalr,system.reactive,rx.net,Signalr,System.reactive,Rx.net,我正在尝试创建一个具有起始值的订阅中心。我无法设置起始值 现在我有了observable,它每隔30分钟生成DateTime.UtcNow public async Task Subscribe() { var client = Clients.Client(Context.ConnectionId); var subscription = new CompositeDisposable(); var dateTimeUTCNow = Observable.Interva

我正在尝试创建一个具有起始值的订阅中心。我无法设置起始值

现在我有了observable,它每隔30分钟生成DateTime.UtcNow

public async Task Subscribe()
{
    var client = Clients.Client(Context.ConnectionId);
    var subscription = new CompositeDisposable();
    var dateTimeUTCNow = Observable.Interval(TimeSpan.FromMinutes(30))
           .Subscribe(@event => 
           {
               client.SendAsync("newDateTimeUtc", DateTime.UtcNow);
           });

    subscription.Add(dateTimeUTCNow);
    RegisterHandler(subscription, userFound.UserToken);
}
我必须设置起始值-日期时间。现在UTC

您在找操作员吗

Observable
    .Interval(TimeSpan.FromMinutes(30))
    .Select(_ => DateTime.UtcNow)
    .StartWith(DateTime.UtcNow)
    ...

您可以使用
.Timer(TimeSpan dueTime,TimeSpan period)
重载,而不是间隔运算符。 如果将dueTime设置为
TimeSpan.Zero
,它将在订阅时发出第一个项目

可观察
.计时器(TimeSpan.Zero,TimeSpan.FromMinutes(30))
.Select(=>DateTime.UtcNow)
...
因为你也可以使用StartWith。但是,StartWith将为您提供声明时间,而不是订阅时间。如果声明时间和订阅时间相同,当然没有区别