Информация об изменениях

Сообщение Re[8]: Reactive Extensions от 25.11.2019 4:53

Изменено 25.11.2019 4:57 okon

Re[8]: Reactive Extensions
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, okon, Вы писали:


O>>
O>>inputObservable
O>>      .Throttle(500)
O>>      .CombineLatest(input => GetList(input))
O>>      .OnNext( result => texbBox.text = result );
O>>


O>>Ну и по событию кидать в inputObservable новые данные


S>Давайте весь код, чтобы сразу запустить. Я дал весь, на форму только кинуть 2 TextBox.


S>И добавьте textBox2.Clear(); после задержки в 500 мс.


Сори, но мне лично лень делать под тебя отдельный проект делать и проверять компиляцию.
Я показал как выглядит решение на Rx, если тебя прям весь код интересует то могу написать примерно с точностью до типов, а дальше сам ковыряй.
Те количество строк не должно измениться в решении , это все решение :


   Observable<string[]> inputObservable;

   // любое место где инициализация формы
   void Init()
   {
    inputObservable
         .Throttle(500) 
         .CombineLatest(input => GetList(input))
         .Subscribe( result => texbBox.text = result );
   }

   void KeyDown(EventArgs e) => inputObservable.OnNext(e);
Re[8]: Reactive Extensions
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, okon, Вы писали:


O>>
O>>inputObservable
O>>      .Throttle(500)
O>>      .CombineLatest(input => GetList(input))
O>>      .OnNext( result => texbBox.text = result );
O>>


O>>Ну и по событию кидать в inputObservable новые данные


S>Давайте весь код, чтобы сразу запустить. Я дал весь, на форму только кинуть 2 TextBox.


S>И добавьте textBox2.Clear(); после задержки в 500 мс.


Сори, но мне лично лень делать под тебя отдельный проект и проверять компиляцию.
Я показал как выглядит решение на Rx, если тебя прям весь код интересует то могу написать примерно с точностью до типов, а дальше сам ковыряй.
Те количество строк не должно измениться в решении , это все решение :


   Observable<string[]> inputObservable = new Observable<string[]>();

   // любое место где инициализация формы
   void Init()
   {
    inputObservable
         .Throttle(500) 
         .CombineLatest(input => GetList(input))
         .Subscribe( result => texbBox.text = result );
   }

   void KeyDown(EventArgs e) => inputObservable.OnNext(e);