Привет все.
Коллеги, обнаружил интересную особенность использования infolog.yield()
Если запустить в аксапте какой то долгий циклический процесс то пока она думает другие открытые окна остаются недоступными. Даже зачастую не перерисовываются нормально.
Это ок. Так всегда и было.
Пример, джоб ниже.
X++:
static void TestSysOperationProgress(Args _args)
{
    SysOperationProgress progress;
    int             seconds = 300;
    int             total = seconds * 200;
    int     i;
    ;
    info("TestSysOperationProgress");
    progress = SysOperationProgress::construct();
    progress.setCaption("TestSysOperationProgress");
    progress.setTotal(total);
    for (i = 1; i <= total; i++)
    {
        progress.incCount();
        progress.setText(strFmt("%1/%2", progress.getCount_RU(), progress.getTotal()));
        progress.update(true);
        sleep(5);
        infolog.yield(); // вглючаем колдунство ! ! !
    }
    info("Конец");
}Но если в этом джобе на каждом шаге добавить infolog.yield() то магическим образом все разблокируется. Окошки перерисовываются все. Пока работает джоб, можно ходить по окнам! Переключаться по разным формам. В самой среде разработки можно попытаться запустить этот же джоб повторно и он с некоторой вероятностью запустится (если нажимать не F5 а тыкать зеленую стрелку в окошке джоба то вероятность успеха повторного запуска намного выше). Можно таким образом запустить параллельно 5 потоков с джобом и это будет отражено в инфологе (там будет в одной форме 5  прогрессбаров - их ядро отрисовывает).
Что же это получается ?
Ядро само открывает новый Thread и разрешает им работать параллельно ?
Но ведь они обращаются к разделяемым ресурсам.
Например у нас в инфологе написан свой метод заменитель info::messageWinAddLine который пишем инфо в специальную форму написанную на X++ 
Все  запущенные треды джоба обращались при своей работе в этот метод и писали в лог (интересно как ресурсы разделялись, ведь X++ это однопоточный язык ? Что происходило если несколько тредов одновременно дергали метод инфолога ? Или  им везло что одновременно не попадали. Или в ядре есть некая блокировка ресурсов так что пока идет вызов от одного треда, остальные ждут в очереди ). Но ошибок не было.
Кто-нибудь применял эту особенность ? Какие риски есть ? Это явно что-то недокументированное.