Сообщение от
iglu
Объясню подробнее, что имел в виду:
Обнаружилась бага при вызове COM методов из Ax. Последовательное открытие и осуществление каких-либо действий через COM методы с большим количеством Excel-документов вызывает увеличение длительности выполнения COM методов после каждого документа. Смоделировать можно с помощью job-а:
X++:
static void ComExcelDocument_RU(Args _args)
{
ComExcelDocument_RU excel;
counter startTime, endTime;
com range;
int i, j;
while(1==1)
{
startTime = WinAPI::getTickCount();
for(j=1; j < 10; j++)
{
excel = new ComExcelDocument_RU();
excel.newFile('',false);
for(i=1; i < 10; i++)
{
range = excel.findRange("A1");
range.value2("dsf");
}
excel.closeDocument(false);
excel.quitApplication(false);
excel.finalize();
}
print (WinAPI::getTickCount() - startTime) / 1000;
}
}
В рамках одного запуска этого job-а время выполнения увеличивается, но если его перезапустить время начинает считаться заново. Соответственно ищу способ как остановить прирост времени выполнения, например, программно сымитировать остановку выполнения job-а, чтобы время начало считаться заново. Ну или может кто сталкивался с такой ситуацией, или знает как решить, подскажите, плиз.
P.S. Уже пробовал запихнуть обработку одного документа в отдельный статический метод и вызывать этот метод в цикле - не помогает, throw error тоже...