Например
Excel.Application ex_app;
ex_app = new Excel.Application();
//прочая ерунда
ex_app.SheetsInNewWorkbook = 1;
ex_app.Workbooks.Add(Type.Missing);
ex_app.WindowState= Excel.XlWindowState.xlMaximized;
ex_app.Visible =true;
//работем долго и упорно параллельно с Excel
//потом Dispose и(или) ~
//ex_app.Close();
//ex_app.Quit();
//GC.Collect();
//в общем неважно
Суть вопроса
При закрытии приложения или Exception все закрывается OK!
Теперь делаем эксперимент нажимаем Ctrl-Alt-Del и снимает Ручками My.exe
Excel остается, что в принципе нормально.
Нажимаю на Exit и

Окно закрывается, а поток ОСТАЕТСЯ!!!
Пробовал бороться но
В принципе глюк допустимый нестандартная ситуация, нечастая, но заел вопрос по теории, а если другое приложение и все очень критично? Что делать!!!
Здравствуйте, Аноним, Вы писали:
А>При закрытии приложения или Exception все закрывается OK!
А>Теперь делаем эксперимент нажимаем Ctrl-Alt-Del и снимает Ручками My.exe
А>Excel остается, что в принципе нормально.
А>Нажимаю на Exit и
Окно закрывается, а поток ОСТАЕТСЯ!!!
Наверное не поток, а процесс?
А>Пробовал бороться но
А>В принципе глюк допустимый нестандартная ситуация, нечастая, но заел вопрос по теории, а если другое приложение и все очень критично? Что делать!!!
Поменяйте "направление" работы с Excel. Сделайте managed add-on для Excel который, при запуске будет устанавливать соединение с вашим приложением (через тот-же remoting). Тогда, каждый у вас будет отвечать сам за себя — приложение будет отвечать только за старт/рестарт экселя, а add-on (который находится внутри экселя) за дальнейшую коммуникацию с приложением и управлением экселем.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Согласен процесс
а если другое приложение не Excel и все очень критично? Что делать!!!
где add-on брать? как отследить что я запустил и не закрыл?
хотя бы внешней службой или чем другим?
Здравствуйте, Аноним, Вы писали:
А>Согласен процесс
А>а если другое приложение не Excel и все очень критично? Что делать!!!
В смысле, другое приложение не Excel? Где находится ваш код и на что вы можете непосредственно влиять?
А>где add-on брать? как отследить что я запустил и не закрыл?
А>хотя бы внешней службой или чем другим?
Да, можно сделать и внешний сервис. Идея простая в него надо передать два processId (их можно достать из COM ссылки) дальше данный сервис должен следить за первым процессом и при завершении — тушить второй.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, TK, Вы писали:
TK>Здравствуйте, Аноним, Вы писали:
А>>При закрытии приложения или Exception все закрывается OK!
А>>Теперь делаем эксперимент нажимаем Ctrl-Alt-Del и снимает Ручками My.exe
А>>Excel остается, что в принципе нормально.
А>>Нажимаю на Exit и
Окно закрывается, а поток ОСТАЕТСЯ!!!
еще можно попробовать
ex_app.Quit();
ex_app = null;
... << RSDN@Home 1.2.0 alpha 4 rev. 1284>>