Несколько звонков на услугу передачи данных от SL3? - PullRequest
0 голосов
/ 29 мая 2010

У меня есть SL3, который выполняет асинхронные вызовы к службе данных. По сути, существует древовидная структура, которая связана с коллекцией объектов. Идея состоит в том, что, когда пользователь выбирает конкретный элемент дерева, вызывается служба данных, а параметр, специфичный для выбранного дерева, передается соответствующему веб-методу в службе данных. Служба данных возвращает данные обратно клиенту SL3, и клиент представляет данные пользователю.

Это хорошо работает. Проблема в том, что когда пользователи начинают перемещаться по древовидной структуре с помощью клавиш со стрелками на клавиатуре, они могут нажимать клавишу со стрелкой вниз, например, 10 раз, и в службу данных будет сделано 10 вызовов, а затем каждый из 10 элементов будут отображаться пользователю на мгновение, пока не будут закончены данные для самого последнего выбранного элемента древовидной структуры.

Итак - на вопрос. Как я могу ввести некоторую форму задержки, чтобы позволить кому-то быстро перемещаться по древовидной структуре, а затем, однажды остановиться на определенном древовидном элементе, вызывается служба данных?

Спасибо за любые предложения.

Chris

Ответы [ 2 ]

0 голосов
/ 29 мая 2010

Как предполагает funwithcoding, вы можете попробовать использовать Reactive Extensions для .Net (Rx) , я сам не использовал его, но, как я слышал, он будет делать то, что вам нужно.

Однако, если вы не чувствуете, что хотите / у вас есть время для изучения Rx и т. Д., Возможно, стоит использовать DispatcherTimer , чтобы создать небольшую задержку в выбранном вами событии Treeview, прежде чем вызывать службу. чтобы получить данные.

0 голосов
/ 29 мая 2010

используйте Rx для silverlight

...