1

我在构建带有响应式扩展的搜索框时遇到了麻烦。我的目标是每 X 毫秒获取一次可用的最新文本,进行搜索并将结果发布回 UI 网格(winforms)。但我坚持第一步。

通过记录,我可以看到使用 Rx Sample 在 5000 毫秒内触发了多个事件,而不仅仅是一个!我预计最多每 5000 毫秒 1 次。

我的代码非常简单,我坚信它有效:

        EventLoopScheduler scheduler = new EventLoopScheduler(ts => new Thread(ts));   
        Observable.FromEventPattern<EventArgs>(this.textBox1, "TextChanged")
        .Sample(new TimeSpan(5000), scheduler).ObserveOn(this).Subscribe
        (
            args =>
            {
                string text = ((TextBox)args.Sender).Text;
                Console.WriteLine("Sample fired. Text: {0}", text);
            }
        );

我正在连接表单的构造函数中的所有内容。我搞砸了调度程序吗?谢谢你。

4

1 回答 1

3

使用. new TimeSpan(5000)_TimeSpan.FromSeconds(5)

于 2014-01-10T19:24:44.357 回答