AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.12.2016, 16:33   #1  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Многопоточное вычисление дисплейных методов
Привет всем!
Столкнулся с одной формой, на которой навешано куча тяжелых дисплейных методов. Из-за которых блокировалась работа пользователей. cacheAddMethod не сильно помогал, так как даже первый незакешированный вызов блокирует интерфейс на несколько десятков секунд при каждой прокрутке страницы на гриде.

Целью моих экспериментов было создать такое кеширование дисплейных методов, которое не блокирует пользовательский интерфейс даже при первой прорисовке данных.

Во вложении проект для AX2012.
В проекте есть тестовая форма, которая демонстрирует использование многопоточного вызова дисплейных методов. Данные перерисовываются не сразу, а постепенно, как будто вы находитесь на веб-странице.
На тестовой форме представлен пример вызова дисплейного метода, возвращающего вещественное число, и дисплейного метода, возвращающего строку.
Чтобы применить пример к любой другой форме, надо
1) Добавить на вашу таблицу все кешируемые дисплейные методы, которые есть на вашей форме, но нет в вашей таблице
2) Вызвать эти дисплейные методы из дисплейных методов на вашей форме, используя предлагаемый пример. В тесте вызываются дисплейные методы "grossWeight" и "itemName" из таблицы InventTable
3) с тестовой формы взять те участки кода, которые обрамлены комментариями
X++:
    //Дисплейные методы -->
    ........
    //Дисплейные методы <--
Внимание: если поставить точку останова внутри дисплейных методов таблиц, которые вызываются из другого потока, то отладчики начнут интенсивно размножаться для каждого нового потока
На дисплейные методы формы точки останова ставить можно, т.к. они выполняются в главном потоке.
Вложения
Тип файла: xpo SharedProject_zThreadDisplayMethod.xpo (22.6 Кб, 264 просмотров)

Последний раз редактировалось Ace of Database; 19.12.2016 в 17:37.
За это сообщение автора поблагодарили: mazzy (2), AlGol (3), sukhanchik (4), Logger (3), gl00mie (5), Dreadlock (5), dech (3), nYury (1).
Теги
thread, проекты

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ускорить вычисление дисплей методов IKA DAX: Программирование 19 23.08.2013 14:00
Класс как набор статических методов AxFinder DAX: Программирование 3 09.08.2013 09:28
Переопределение стандартных методов у динамически создаваемых контролов - вопрос с предисторией (многабукаф) TasmanianDevil DAX: Программирование 13 02.08.2012 07:39
Win2008 и вызов методов COM-объектов AndyD DAX: Программирование 13 06.02.2012 15:22
Список методов таблицы s_s_a DAX: Программирование 16 28.05.2009 13:28

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:50.