Цитата:
Сообщение от
imir
Функция, запускающая поток всегда принимает контейнер и отдает тоже контейнер, при запуске в потоке - у вас есть объект thread, не теряйте его, подождите ответа (в цикле со sleep допустим), ответ получается thread.getOutputParm (на память).
UPD По try catch можно отловить момент возникновения варинингов и ерроров, в обработчике пакуйте инфолог и OutputParm его
Вот чтобы совсем просто и конкретно код метода который запускается в потоке
X++:
static client void runThread(Thread t)
{
real x=10, y, z;
container retVal;
;
try {
z = x/y;
}
catch (exception::error)
{
retVal = [infoLog.num()];
t.setOutputParm(retVal);
throw exception::error;
}
retVal = [infoLog.num()];
t.setOutputParm(retVal);
}
А вот и сам метод создающий поток
X++:
static client Thread run()
{
Thread t = new Thread();
;
t.run( classnum( TutorialThread ), identifierstr(runThread));
info(con2str(t.getOutputParm()));
}
Но info у меня при таком раскладе выводит 0. Чего то не догоняю, либо не умею работать с инфологом.