Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
vb_subпотому что не получилось достичь аналогичного эффекта с помощью тасков.Ну я и предложил разобраться с тем, что не получилось. vb_subВ диспетчере на мой взгляд решает DispatcherPriority.Render - ставим приоритет для прорисовки.Нет, это не то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 09:43 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Алексей К, Он до сих пор не вкл. Виртуализацию? Тогда это велосипед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 09:48 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Алексей К, пробовал в таски оборачивать различными способами- и через Async и через Task.Run- никак не получалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 09:50 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
vb_subАлексей К, пробовал в таски оборачивать различными способами- и через Async и через Task.Run- никак не получалось. Он давал ссылку DataGrid.EnableRowVirtualization Т.е. закачка будет только того что на экране. Т.е. 0,1 сек. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:08 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
vb_subАлексей К, пробовал в таски оборачивать различными способами- и через Async и через Task.Run- никак не получалось. Так попробуй: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:36 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Алексей К, Зачем finally если using. Зачем catch. А то как то полезного кода 3 строки из простыни кода. Это наверно потому что без EF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:05 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Алексей К, BeginInvoke это асинхронный возыв. Если к примеру в цикле вызвать 100500 раз этот метод, то они отработают все когда очередь Dispatcher'а для заданного приоритета освободится, далеко не всегда такое поведение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:06 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Petro123Алексей К, Зачем finally если using. Зачем catch. А то как то полезного кода 3 строки из простыни кода. Это наверно потому что без EF.Ну я не стал упрощать, просто переделал на "обычный" async что есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:18 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Roman MejtesАлексей К, BeginInvoke это асинхронный возыв. Если к примеру в цикле вызвать 100500 раз этот метод, то они отработают все когда очередь Dispatcher'а для заданного приоритета освободится, далеко не всегда такое поведение.Ну сдаётся мне, что модель не должна ждать отрисовки UI. А если UI не успевает обрабатывать отправляемые ему сообщения, то нужно менять концепцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:20 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Алексей КRoman MejtesАлексей К, BeginInvoke это асинхронный возыв. Если к примеру в цикле вызвать 100500 раз этот метод, то они отработают все когда очередь Dispatcher'а для заданного приоритета освободится, далеко не всегда такое поведение.Ну сдаётся мне, что модель не должна ждать отрисовки UI. А если UI не успевает обрабатывать отправляемые ему сообщения, то нужно менять концепцию. сценарии могут быть разные. Если ждать, как раз если ждать отрисовки UI не нужно, то BeginInvoke не особо то и нужно. Как в прочем и использовать Dispatcher. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 12:14 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Отрисовка UI должна быть в объекте таблица. А то биндинга прогресс дошёл, а paint руками делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 12:40 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Roman MejtesBeginInvoke не особо то и нужно. Как в прочем и использовать Dispatcher. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 12:41 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
>vb_sub, сегодня, 08:39 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1271937&msg=20814371] [20814371] Пока нашел такой вариант, в принципе устраивает. А если так: 1. В DoWork -a) не использовать async/await. -b) item записывать в потокобезопасное FIFO 2. Задействовать ProgressChanged, где и переписывать item в items 3. В RunWorkerCompleted дополнительно проверить FIFO на пустоту ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 19:16 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
ВМоисеевне использовать async/await. Любите вы извращения))). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 19:41 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Roman MejtesАлексей Кпропущено... Ну сдаётся мне, что модель не должна ждать отрисовки UI. А если UI не успевает обрабатывать отправляемые ему сообщения, то нужно менять концепцию. сценарии могут быть разные.А люди все одинаковые. Обычному человеку не нужно обновление UI 1000 раз в секунду. Roman MejtesЕсли ждать, как раз если ждать отрисовки UI не нужно, то BeginInvoke не особо то и нужно. Как в прочем и использовать Dispatcher.Я ничего не понял. Invoke - отправка сообщения в очередь с ожиданием обработки сообщения очередью. BeginInvoke - отправка в очередь без ожидания. Модель в нормальной ситуации оповещает UI и ничего не ждёт, работает дальше, поэтому нужность Invoke, на мой взгляд, сомнительна. Контекст синхронизации в своих глубинах использует Dispatcher.BeginInvoke, поэтому фраза " то BeginInvoke не особо то и нужно. Как в прочем и использовать Dispatcher " у меня вызывает некоторое удивление. Мне кажется, что ты немного запутался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2017, 07:30 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Что то у меня не разложилось в голове по полочкам). Писать ведь можно по разному. Если мы по MVVM, то например в андроиде это: Код: c# 1. т.е. не хочется в слое бизнес логики заниматься какими то invoke и сообщениями. Техническими вещами. Далее биндинг: Код: c# 1. 2. 3. 4. 5. 6. Я так понял, что у ТС - MVP И собственно всё. Больше кода то нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2017, 10:11 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Алексей КPetro123Вот это мы и ищем.А чё её искать, вот она. :-) написано что в C# виртуализация не поддерживается и показан велосипед самописка Алексей КНу или тупо включить DataGrid.EnableRowVirtualization , если не нужна ленивая закачка данных с сервера. не понял отличия этого метода и приведённого кода вами и ТС. Если просто галку включить тормозить вед не будет? Алексей К"Большие таблицы на клиенте - зло" (ц) народное :-) это для веб справедливо (на данном этапе технологий). Для десктопа размер тысяч данных не должно быть проблемой (девэкспресс). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2017, 10:46 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Алексей К, Отсюда вопрос прежний. Все в десктопе пишут самописки как на хабре или ставят галку по вашей ссылке? Или у всех телерик с интерфейсом VirtualQueryableCollectionView<T> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2017, 10:48 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Алексей КА люди все одинаковые. Обычному человеку не нужно обновление UI 1000 раз в секунду. IMHO по простому логика сообщений должна быть такая: - основной поток загружает табличку и дал команду на загрузку коллекции - на OnShow показал что успело загрузиться БЕЗ ТОРМОЗОВ - в доп потоке продолжает грузится но основной поток не трогается - только при скроллинге берётся новая порция самим гридом, а не коллекция пихает в грид порции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2017, 10:52 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Petro123Алексей К, Отсюда вопрос прежний. Все в десктопе пишут самописки как на хабре или ставят галку по вашей ссылке? Или у всех телерик с интерфейсом VirtualQueryableCollectionView<T>Мы похоже говорим немного о разных вещах. 1. Ленивая загрузка данных с сервера - отсутствует, кому надо, те пишут велосипеды "как на хабре". Это то, чего ты хочешь, как я понял. 2. Виртуализация записей WPF - в большинстве контролов по умолчанию включена, в этом режиме создаются контейнеры только для отображаемых записей. Я упомянул об этом из-за того, что выше говорилось о тормозах WPF при большом количестве записей, что на самом деле не так. Тормоза, видимо, связаны просто с загрузкой большого объёма данных в модель, WPF тут тормозов не добавляет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2017, 16:13 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Petro123Алексей КА люди все одинаковые. Обычному человеку не нужно обновление UI 1000 раз в секунду. IMHO по простому логика сообщений должна быть такая: - основной поток загружает табличку и дал команду на загрузку коллекции - на OnShow показал что успело загрузиться БЕЗ ТОРМОЗОВ - в доп потоке продолжает грузится но основной поток не трогается - только при скроллинге берётся новая порция самим гридом, а не коллекция пихает в грид порции.И так можно. Думаю, что здесь разные способы имеют право на жизнь. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2017, 16:32 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Алексей КPetro123Алексей К, Отсюда вопрос прежний. Все в десктопе пишут самописки как на хабре или ставят галку по вашей ссылке? Или у всех телерик с интерфейсом VirtualQueryableCollectionView<T>Мы похоже говорим немного о разных вещах. 1. Ленивая загрузка данных с сервера - отсутствует, кому надо, те пишут велосипеды "как на хабре". Это то, чего ты хочешь, как я понял. 2. Виртуализация записей WPF - в большинстве контролов по умолчанию включена, в этом режиме создаются контейнеры только для отображаемых записей. Я упомянул об этом из-за того, что выше говорилось о тормозах WPF при большом количестве записей, что на самом деле не так. Тормоза, видимо, связаны просто с загрузкой большого объёма данных в модель, WPF тут тормозов не добавляет. Я автор ищем способы чтобы табла в ГУИ не тормозила. Правда он называет это словом заморозка, а слово ленивая я от тебя здесь первый раз услышал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2017, 17:36 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Алексей КТормоза, видимо, связаны просто с загрузкой большого объёма данных в модель, WPF тут тормозов не добавляет. Вот и пойми вас. Конечно, тормоза связаны с загрузкой в модель, т.к. тянуть на клиента сразу всю таблу накладно. Ну, давай не про WPF, а целиком про платформу. Т.к. большие таблицы везде есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2017, 17:39 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Алексей КИ так можно. Думаю, что здесь разные способы имеют право на жизнь. :-) OK Ищем Минимальный код для Больших таблиц чтобы не тормозило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2017, 17:43 |
|
||
|
Async Loading от Стивена Клири
|
|||
|---|---|---|---|
|
#18+
Алексей Кразные способы почитал в сети. Немного другой код получается при редактировании коллекции с клиента на сервер при больших списках. Будет ошибка кода доступа к объекту из потока где он не был создан. Получается, что если только читаем, то код там должен быть простой как 5 копеек. Если с редактированием, то нужно перебрасывать из потокового списка коллекции в коллекцию биндинга в потоке ГУИ. Получается 2 варианта кода imho. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2017, 17:47 |
|
||
|
|

start [/forum/topic.php?fid=21&msg=39524725&tid=1440497]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 187ms |

| 0 / 0 |
