我在构建带有响应式扩展的搜索框时遇到了麻烦。我的目标是每 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);
}
);
我正在连接表单的构造函数中的所有内容。我搞砸了调度程序吗?谢谢你。