Size: a a a

2020 February 25

AH

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

?
Именно так
источник

s

semptra in pro.net
Ayrat Hudaygulov
Именно так
мм, но тогда весь обновить UI сможет только первый хендлер, а не последний
источник

AH

Ayrat Hudaygulov in pro.net
Но второе выставление поля в тру нельзя делать
источник

AH

Ayrat Hudaygulov in pro.net
semptra
мм, но тогда весь обновить UI сможет только первый хендлер, а не последний
Аааааа, тебе надо последний.. тогда тебе надо дождаться всех

Task.WhenAll
источник

AH

Ayrat Hudaygulov in pro.net
Вообще тут нужно или знание о том, сколько у тебя хендлеров, или таймаут ожидания
источник

AH

Ayrat Hudaygulov in pro.net
Если ты не знаешь сколько их, то ты дождавшись N ответов не знаешь есть ли N+1
источник

vl

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

s

semptra in pro.net
то есть мне нужен список всех запущенных хендлеров, складывать их через
var handlerTask = Task.Run(); 
Handlers.Add(handlerTask);


Потом внутри Task.Run() делать ожидание все остальных хендлеров, кроме себя, и потом апдейтить UI, так?
источник

AH

Ayrat Hudaygulov in pro.net
semptra
то есть мне нужен список всех запущенных хендлеров, складывать их через
var handlerTask = Task.Run(); 
Handlers.Add(handlerTask);


Потом внутри Task.Run() делать ожидание все остальных хендлеров, кроме себя, и потом апдейтить UI, так?
Ну что-то типа. И потом получить в лицо зависон так как ты в этом дизайне ожидаешь самую долгую таску, которая может и зависнуть
источник

AH

Ayrat Hudaygulov in pro.net
Короче, говнокод.
источник

s

semptra in pro.net
эх
источник

AH

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

s

semptra in pro.net
vova lantsov
Почему не проверять? Вполне ок периодически его дёргать
а потом откатывать UI на состояние "до"?
источник

AH

Ayrat Hudaygulov in pro.net
Это если делать хорошо
источник

s

semptra in pro.net
Тогда надо ж еще дождаться пока он откатит, прежде чем новый стартовать
источник

s

semptra in pro.net
по сути таск-то тривиальный - провалидировать форму и если чет не то отобразить несколько иконок с ошибками
источник

s

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

AH

Ayrat Hudaygulov in pro.net
semptra
по сути таск-то тривиальный - провалидировать форму и если чет не то отобразить несколько иконок с ошибками
Тогда ты сделал ещё больший говнокод. Ты ж на сервер отправляешь результаты ввода каждого поля в реалтайме?
источник

AH

Ayrat Hudaygulov in pro.net
Сервер тебя за это полюбит
источник

AH

Ayrat Hudaygulov in pro.net
Рекомендую:
Проверять на клиенте каждое поле по отдельности и показывать проблемы онлайн. Не отправлять ничего на сервер.

При отправке на сервер (сабмит формы), после получения всех ошибок валидации, отрбражать их разом
источник