我正在開發一個使用C#4.0的WPF應用程序,其中一些用戶特定的代碼將在運行時編譯,然後在AppDomain內部執行。該過程可能需要10毫秒或5分鐘。 AppDomain將由創建Task.Factory.StartNew()。工作正常。如何取消任務而不取消CancellationToken.IsCancellationRequested?
現在我希望能夠取消/中斷執行。當代碼正在執行時,我可以按 「停止」按鈕,但如何取消該任務?我知道: 有CancellationToken.IsCancellationRequested屬性,但我不能 循環通過的東西。這就是爲什麼我在執行 (原子)代碼時無法檢查該值。並卸載AppDomain不會停止任務。
供參考:我拿任務類,因爲它易於使用。如果線程將是有用的:沒問題。
有人可以幫助我嗎?短代碼片段會很好:)。
謝謝。
您正在使用System.CodeDom編譯權嗎?在開始編譯之前以及在開始加載新的AppDomain並創建代理對象之前,您可以取消。我不認爲CodeDomProvider API允許在編譯期間取消。 –