Показать сообщение отдельно
Старый 12.10.2013, 22:27   #21  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
Еще обнаружилась проблема. При выгрузке отчетов через SysExcelApplication_net и закрытии файла в диспетчере задач продолжает висеть процесс.
Решение данной проблемы я находил на разных форумах и основной мыслью было вызов
X++:
System.GC::Collect();
System.GC::WaitForPendingFinalizers();
Но это не помогало. После долгих мучений я нашел решение.
Решение
Все используемые переменные классов SysExcel*_Net должно быть аннулированы (присвоить null, в том числе и переменной приложения). Без этого вторая часть может не отработать.
После этого нужно запустить метод чистки "мусора "(аналог метода quit в классе SysExcelApplication_net ). Его я разместил в классе приложения.
X++:
static void finalizeProcess()
{
    ;
    new InteropPermission(InteropKind::ClrInterop).assert();

    System.GC::Collect();
    System.GC::WaitForPendingFinalizers();
    CodeAccessPermission::revertAssert();
}
После выполнения данных условий процесс у меня завершается.
Надеюсь, что данные опыт кому-нибудь поможет.
За это сообщение автора поблагодарили: alex55 (1).