Использование Reactive.NET, как я могу подождать, пока одно и то же событие не произойдет за n секунд до выполнения действия?Подождите, пока не произойдет такое же событие в течение промежутка времени, используя Rx
Следующий пример (C#, WinForms) делает то, что я хочу, но я хочу задержку (скажем 1 секунду) перед расширяющейся происходит:
var autoExpand = Observable.FromEventPattern<DragEventArgs>(tree, "DragOver");
autoExpand
.ObserveOn(SynchronizationContext.Current)
.Distinct(dragEvent => tree.GetNodeFromCoordinates(dragEvent.EventArgs.X, dragEvent.EventArgs.Y))
.Subscribe(dragEvent => {
TreeNode node = tree.GetNodeFromCoordinates(dragEvent.EventArgs.X, dragEvent.EventArgs.Y);
if (node != null) node.Expand();
});
Почему бы не использовать задачу и задачу и функции ContinueWith()? Он является родным .net –
David
Я еще не использовал Rx, но вы, вероятно, захотите [Delay] (http://msdn.microsoft.com/en-us/library/ff708297%28v=VS.92%29.aspx) после «Distinct». –
@ David Я должен лениться написать код для обработки задержки, которую я ищу, поддерживая фоновый поток и т. Д. – Zurb