Size: a a a

2020 February 25

s

semptra in pro.net
Volodymyr
Немного не понятно, у тебя есть ивент у которого несколько асинк хендлеров, или у тебя есть несколько ивентов и у каждого свой всинк хендлер и их надо синхронизировать?
Есть несколько ивентов, у всех один и тот же хендлер асинхронный
источник

AT

Alexey Tkachenko in pro.net
у тебя хэндлеры работают долго, со всем набором данных, и тебе надо отбросить устаревшие результаты?
источник

A

Anatoly in pro.net
Nail
это же типикал nix-way.
мне на такие вопросы старший коллега всегда отвечал
"ну бля чо тяжело что ли за'man'ить?"
нет, не типичный, но это оффтоп.
источник

s

semptra in pro.net
Alexey Tkachenko
у тебя хэндлеры работают долго, со всем набором данных, и тебе надо отбросить устаревшие результаты?
Да, актуальным является только последний
источник

AT

Alexey Tkachenko in pro.net
semptra
Да, актуальным является только последний
выглядит как задача для rx
источник

V

Volodymyr in pro.net
semptra
Да, актуальным является только последний
последний, который запустился, верно?
источник

s

semptra in pro.net
да
источник

Ln

Larymar neosilator in pro.net
Для реактив юй)
источник

s

semptra in pro.net
Larymar neosilator
Для реактив юй)
тянуть целый фреймворк для этого мне никто не даст
источник

AT

Alexey Tkachenko in pro.net
вычислять результаты дорого с точки зрения процессора?
источник

s

semptra in pro.net
Alexey Tkachenko
вычислять результаты дорого с точки зрения процессора?
Нет
источник

AT

Alexey Tkachenko in pro.net
semptra
тянуть целый фреймворк для этого мне никто не даст
тогда позаимствуй идею
источник

s

semptra in pro.net
Может создать поле с таском хендлера, который ранится в текущий момент, и если приходит новый, отменять тот и стартовать новый?
источник

s

semptra in pro.net
Хотя непонятно где мне тот таск останавливать надо, допустим он уже отработал часть с получением данных и начал обновлять UI, не проверять же мне после каждого обновления CancellationToken?
источник

AT

Alexey Tkachenko in pro.net
semptra
Может создать поле с таском хендлера, который ранится в текущий момент, и если приходит новый, отменять тот и стартовать новый?
тут тоже будет гонка
источник

s

semptra in pro.net
Гм, ну тогда у меня только изначальная идея с AutoResetEvent остается
источник

AH

Ayrat Hudaygulov in pro.net
semptra
Ну в моем представлении это так выглядит
1. Стартует первые хендлер, вызывает await чтобы получить данные, пытается обновить UI
2. В этом время второй хендлер уже ранится, тоже пытается обновить UI (причем тот же самый, хендлеры то одинаковые)
Если ты все сделал правильно, то у тебя код после евейта будет на UI треде. То есть достаточно одного бул поля, которой ты будешь проверять сразу после евейта и обновлять UI только одним (первыми пришедшим) набором данных.
Гонок не будет.
источник

AH

Ayrat Hudaygulov in pro.net
Датасеты могут грузиться параллельно, но континуейшны будут выполняться синхронно на одном потоке
источник

s

semptra in pro.net
Ayrat Hudaygulov
Если ты все сделал правильно, то у тебя код после евейта будет на UI треде. То есть достаточно одного бул поля, которой ты будешь проверять сразу после евейта и обновлять UI только одним (первыми пришедшим) набором данных.
Гонок не будет.
А как это будет выглядеть примерно? Типа
if (couldUpdateUI)
{
couldUpdateUI = false;
// Update UI...
couldUpdateUI = true;
}

?
источник

s

semptra in pro.net
или я не так понял тебя
источник