Цитата:
Сообщение от
S.Kuskov
gl00mie, а не могли бы вы разместить в этой теме коды этих макросов и переписанных методов ComExcelDocument_RU. Для тех у кого ещё нет спасительного rollup

Пробовал "играть" с макросами. Они помогают не всегда либо не помогают вообще!!!
Вот код макроса EndSafeCall_RU :
X++:
// %1 retry count by default 4
// %2 time out by default 250
// %3 exception type by default Exception::Error
#ifnot.empty(%1)
#define.safeCallRetryCount(%1)
#endif
#if.empty(%1)
#define.safeCallRetryCount(4)
#endif
#ifnot.empty(%2)
#define.safeCallTimeOut(%2)
#endif
#if.empty(%2)
#define.safeCallTimeOut(250)
#endif
#ifnot.empty(%3)
#define.safeCallExceptionType(%3)
#endif
#if.empty(%3)
#define.safeCallExceptionType(Exception::Error)
#endif
catch (#safeCallExceptionType)
{
if (xSession::currentRetryCount() >= #safeCallRetryCount)
{
throw #safeCallExceptionType;
}
else
{
#define.safeCallNotifyMethod('notify')
infolog.clear(0);
infolog.addTimeOut(infolog, #safeCallNotifyMethod, #safeCallTimeOut);
infolog.wait();
retry;
}
}
И StartSafeCall_RU:
Только это как "мертвому припарки"
Может лучше копать в сторону "однопоточного" запуска, предложенного AndreyStar ?
Кто знает как это делать ?
Через thread ? Но это ведь тоже определенное извращение...