带有Reactive Extensions和textbox Textchanged事件的搜索框

时间:2014-01-10 11:12:41

标签: winforms system.reactive observable search-box

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

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

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

        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);
            }
        );

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

1 个答案:

答案 0 :(得分:3)

使用new TimeSpan(5000)代替TimeSpan.FromSeconds(5) 5000个刻度而不是很长时间。