我有一個有點不尋常的場景,我需要能夠徹底屠殺「掛」,自我託管WorkflowInstance
的超過給定的超時閾值。我嘗試了Abort()
,Terminate()
和Cancel()
方法,但這些都太「好」了。它們在被授予之前似乎都需要來自WorkflowInstance的響應。如何強制終止WorkflowInstance?
在我的方案中,工作流進入無限循環,因此無響應。由於工作流程完全沒有響應,所以調用上面提到的常規方法會很簡單。我很驚訝地得知WorkflowRuntime
沒有出現處理這種情況的機制,或者Abort()
和Terminate()
僅僅是建議而不是暴力指令。
我搜索谷歌/ MSDN/stackoverflow /等試圖找出當Terminate()
乾脆不會完成工作,幹得不好。我考慮創建自己的基本活動,並給它一個超時值,這樣,如果其「子」活動的一個子活動掛起,它可以自行終止活動。這種方法好像我會用大錘敲打蒼蠅......
有沒有我忽略的技術?
它被允許執行的事實的確是一個真正問題的徵兆,這是一個錯誤,它已經把它變成了一個它從未實現過的環境。同意,也是本週與我的團隊討論的主題......我希望提供某種故障安全方式,如果這種代碼在將來以某種方式使其脫離開發環境,除了改進代碼推廣過程,這對於一個全新的問題本身來說可能就足夠了。我想避免對線程本身進行處理,但這可能就是這樣。 –
此外,這很有可能成爲答案,就像我不希望它成爲......我並沒有停下來想它是一個直線線程問題。我希望利用WorkflowRuntime的一些管道來爲我完成繁重的工作。保持它開放一點,看是否可以追求任何其他角度,但不幸的是,這可能是無效的。 –