Показать сообщение отдельно
Старый 27.03.2013, 14:57   #7  
Perc is offline
Perc
Участник
 
194 / 57 (2) ++++
Регистрация: 05.03.2005
Цитата:
Сообщение от 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. Чего то не догоняю, либо не умею работать с инфологом.