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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.03.2016, 08:14   #1  
vikuss2006 is offline
vikuss2006
Участник
 
42 / 10 (1) +
Регистрация: 22.11.2013
Цитата:
Сообщение от terraByteG Посмотреть сообщение
Если повисла - значит поток все еще работает. Код в потоке какой у вас? Можно код класса предоставить (в котором методы потока обитают)... Можно экспорт сделать и файлик сюда.
Система висит не из-за обработки, а из-за ошибки, которая никак не устраняется "Object 'FormRun' could not be created", запускала агент ничего не дало.
Код остался такой же, только с примененными советами

class FCH_ThreadDemo
{
}
static client void main()
{
Thread t;
container result;
;
t = new Thread();
t.run(classnum(FCH_ThreadDemo), staticmethodstr(FCH_ThreadDemo, run));

while (t.status() == 1) //fixed
{
sleep(500);
}
[result] = t.getOutputParm();
info(conpeek(result,1));
}
static client void run(Thread t)
{
t.setOutputParm(['Hello']);
}
Вызов
FCH_ThreadDemo::main();
Старый 30.03.2016, 08:47   #2  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Цитата:
Сообщение от vikuss2006 Посмотреть сообщение
Система висит не из-за обработки, а из-за ошибки, которая никак не устраняется "Object 'FormRun' could not be created", запускала агент ничего не дало.
Гиблое это дело, работать с потоками в 3.0. Насколько я знаю, они никогда нормально не работали. Если очень надо, лучше используйте setTimeOut на форме.
Старый 30.03.2016, 14:41   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,719 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Lucky13 Посмотреть сообщение
Если очень надо, лучше используйте setTimeOut на форме.
Не на форме. Предположительно, в глобальном кеше.

Нужен объект, который после инициализации и создания экземпляра Com будет существовать до закрытия Axapta.

Не знаю, был ли уже в Ax3.0 \Classes\ClassFactory\globalCache()? Если был, то посмотрите по перекрестным ссылкам примеры использования. Вероятно, проще всего, будет в глобальный кеш засунуть экземпляр класса.

Если экземпляр класса в глобальном кеше будет "простаивать" (в смысле, приведет к выгрузке COM из памяти по причине "не использования"), то организовать периодическое "передергивание" по setTimeOut через метод класса \Classes\Info\executeUserOptions()

Хотя, конечно, это уже "костыли" от безысходности...
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 30.03.2016, 16:05   #4  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Не на форме. Предположительно, в глобальном кеше.

Не знаю, был ли уже в Ax3.0 \Classes\ClassFactory\globalCache()? Если был, то посмотрите по перекрестным ссылкам примеры использования. Вероятно, проще всего, будет в глобальный кеш засунуть экземпляр класса.
Можно и в глобальном кэше, в 3.0 он есть.
Старый 30.03.2016, 14:43   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,719 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от vikuss2006 Посмотреть сообщение
Система висит не из-за обработки, а из-за ошибки, которая никак не устраняется "Object 'FormRun' could not be created", запускала агент ничего не дало.
На какой команде-то эта ошибка возникает?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 30.03.2016, 15:33   #6  
vikuss2006 is offline
vikuss2006
Участник
 
42 / 10 (1) +
Регистрация: 22.11.2013
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
На какой команде-то эта ошибка возникает?
сразу на t.run(
Старый 30.03.2016, 17:50   #7  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,719 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от vikuss2006 Посмотреть сообщение
сразу на t.run(
X++:
static client void run(Thread t)
{
   ;   // Поставьте в начале метода "пустую" точку с запятой
   t.setOutputParm(['Hello']);
}
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Теги
com connector, com-объект, thread

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axmfg: Lean manufacturing: Picking activities and kanban line events Blog bot DAX Blogs 0 26.08.2014 21:13
atinkerersnotebook: Using Vendor Requests to Manage On-boarding New Vendors Blog bot DAX Blogs 1 22.10.2013 02:24
atinkerersnotebook: Using Service Management to Track Service Orders Blog bot DAX Blogs 1 25.08.2013 19:16
atinkerersnotebook: Configuring Lean Manufacturing in Dynamics AX 2012 Blog bot DAX Blogs 1 12.08.2013 00:15
dynamicsaxtraining: Vendor returns Blog bot DAX Blogs 0 11.10.2012 00:11
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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