в системе из мест, где я написал код ITCL в потоке, который убивает первенствоватьITCL/TCOM/Tcl/Темы: Является ли этот поток непрерывно работает
method Kill_XL {} {
thread::create {
set rc [catch {exec taskkill /t /f /im Excel*} output]
}
sleep 5
}
После этого, в течение нескольких различных желаний оболочек следующая команда вызывает Excel App, но я могу видеть, что это сразу же удалились в диспетчере задач
(shh..) 2 % ::tcom::ref createobject Excel.Application
::tcom::handle0x027CE918
(shh..) 3 % ::tcom::ref createobject Excel.Application
::tcom::handle0x027CE918
выше повторяется в течение нескольких желаний оболочек (каждый вызывается после закрытия предыдущей оболочки желание).
При управлении любой команды, ошибка появляется как:
"invalid command name ::tcom::handle0x027CE918"
Но работает следующий код и открывает приложение Word, без проблем
(shh..) 4 % ::tcom::ref createobject Word.Application
::tcom::handle0x027CE918
После ожидания в течение длительного времени (15 -20 минут), я перезапустил оболочку пожеланий и смог запустить (без проблем) следующий код:
И другое сообщение об ошибке на этот раз после убийства первенствует
(shh..) 10 % thread::create {
set rc [catch {exec taskkill /t /f /im Excel*} output]
}
tid00004658
(shh..) 11 % $x Visible 0
0x800706ba {The RPC server is unavailable.}
, а затем все начинается снова:
(shh..) 20 % ::tcom::ref createobject Excel.Application
::tcom::handle0x0272EB58
(shh..) 21 %
(shh..) 21 % ::tcom::handle0x0272EB58 Visible 1
invalid command name "::tcom::handle0x0272EB58"
Является резьбовыми убивать вызывает проблемы - я всегда спать 5 секунд, чтобы обеспечить умерщвление успешный.
Или это какая-то другая (известная) проблема с tcom-Excel?
Кроме того, давая такое же приложение обрабатывает все время
(shh..) 30 % foreach x {. .} {puts [::tcom::ref createobject Excel.Application]}
::tcom::handle0x0272EB58
::tcom::handle0x0272EB58
Может ли это быть проблема очистки неизданными объектов TCOM - это не clenaup автоматически убивать процесс первенствовать связанный?