0
在的地方我在殺死Excel中ITCL/TCOM /的Tcl /線程:這是線程連續運行
method Kill_XL {} {
thread::create {
set rc [catch {exec taskkill /t /f /im Excel*} output]
}
sleep 5
}
之後,幾個不同的願望炮彈以下命令調用線程寫入ITCL代碼Excel的應用程序,但我可以看到它立即在任務管理器退出
(shh..) 2 % ::tcom::ref createobject Excel.Application
::tcom::handle0x027CE918
(shh..) 3 % ::tcom::ref createobject Excel.Application
::tcom::handle0x027CE918
以上重複做了幾個願望彈(關閉之前的願望後殼每個調用)。
"invalid command name ::tcom::handle0x027CE918"
但是,下面的代碼工作並沒有問題
(shh..) 4 % ::tcom::ref createobject Word.Application
::tcom::handle0x027CE918
打開了一個Word應用程序等待很長一段時間後(15:
上運行的任何命令,如出現錯誤-20分鐘),我重新啓動了希望外殼,並能夠運行(沒有問題)以下代碼:
(shh..) 8 % set x [::tcom::ref createobject Excel.Application]
::tcom::handle0x0272EB58
(shh..) 9 % $x Visible 1
,並開始這個時候殺的Excel
(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對象所有的時間 - 它不是殺死相關的Excel進程自動clenaup?