|
![]() |
#1 |
Участник
|
Цитата:
Код остался такой же, только с примененными советами 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(); |
|
![]() |
#2 |
Участник
|
Гиблое это дело, работать с потоками в 3.0. Насколько я знаю, они никогда нормально не работали. Если очень надо, лучше используйте setTimeOut на форме.
|
|
![]() |
#3 |
Участник
|
Не на форме. Предположительно, в глобальном кеше.
Нужен объект, который после инициализации и создания экземпляра Com будет существовать до закрытия Axapta. Не знаю, был ли уже в Ax3.0 \Classes\ClassFactory\globalCache()? Если был, то посмотрите по перекрестным ссылкам примеры использования. Вероятно, проще всего, будет в глобальный кеш засунуть экземпляр класса. Если экземпляр класса в глобальном кеше будет "простаивать" (в смысле, приведет к выгрузке COM из памяти по причине "не использования"), то организовать периодическое "передергивание" по setTimeOut через метод класса \Classes\Info\executeUserOptions() Хотя, конечно, это уже "костыли" от безысходности...
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
![]() |
#4 |
Участник
|
Можно и в глобальном кэше, в 3.0 он есть.
|
|
![]() |
#5 |
Участник
|
На какой команде-то эта ошибка возникает?
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
![]() |
#6 |
Участник
|
|
|
![]() |
#7 |
Участник
|
X++: static client void run(Thread t) { ; // Поставьте в начале метода "пустую" точку с запятой t.setOutputParm(['Hello']); }
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
Теги |
com connector, com-объект, thread |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|