Winforms 带有被动扩展名和textbox Textchanged事件的Searchbox

Winforms 带有被动扩展名和textbox Textchanged事件的Searchbox,winforms,system.reactive,observable,search-box,Winforms,System.reactive,Observable,Search Box,我在构建带有被动扩展的搜索框时遇到问题。 我的目标是每隔X毫秒获取最新的可用文本,进行搜索并将结果发布回UI网格(winforms)。但我还停留在第一步 我可以通过日志记录看到,使用Rx样本在5000毫秒内触发了多个事件,而不仅仅是一个!我预计每5000毫秒最多1次 我的代码非常简单,我坚信它是有效的: EventLoopScheduler scheduler = new EventLoopScheduler(ts => new Thread(ts));

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

我可以通过日志记录看到,使用Rx样本在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);
            }
        );
EventLoopScheduler=neweventloopscheduler(ts=>newthread(ts));
可观察的.FromEventPattern(this.textBox1,“TextChanged”)
.Sample(新时间跨度(5000),调度程序).ObserveOn(此).Subscribe
(
args=>
{
字符串文本=((文本框)args.Sender).text;
WriteLine(“Sample fired.Text:{0}”,Text);
}
);
我在表单的构造函数中连接所有内容。 我搞砸了吗?
谢谢。

使用
时间跨度,而不是
新的时间跨度(5000)
,它是5000个刻度,一点也不长。从秒(5)
开始,您是否尝试删除
调度程序
参数和
。ObserveOn(this)
操作符?无法删除它们,需要响应用户界面。