這可能並不是一個IronPython問題,所以Python開發者可能會提供幫助。終止一個IronPython腳本
我想在我的.net桌面應用程序中使用IronPython運行python腳本,並希望讓用戶能夠強制終止腳本。這裏是我的測試腳本(我是新來的Python所以它可能不完全正確): -
import atexit
import time
import sys
@atexit.register
def cleanup():
print 'doing cleanup/termination code'
sys.exit()
for i in range(100):
print 'doing something'
time.sleep(1)
(請注意,我可能要在一些腳本來指定「的atexit」功能,使用戶可以執行任何在正常或強制終止期間清理)。
在我的.Net代碼我使用下面的代碼終止腳本:
_engine.Runtime.Shutdown();
這將導致腳本的atexit
被調用函數,但腳本實際上並沒有終止 - 在for
環繼續前進。其他一些SO文章(here和here)說,sys.exit()
應該做的伎倆,所以我錯過了什麼?