【发布时间】:2012-09-09 16:31:36
【问题描述】:
我正在使用 C# 4.0 开发一个 WPF 应用程序,其中一些用户特定的代码将 在运行时编译,然后在 AppDomain 中执行。该过程可能需要 10 毫秒或 5 分钟。 AppDomain 将由Task.Factory.StartNew() 创建。工作正常。
现在我希望能够取消/中断执行。我可以按 代码执行时停止按钮,但如何取消任务?我知道: 有 CancellationToken.IsCancellationRequested 属性,但我不能 循环通过某事。这就是为什么我在执行时无法检查值 (原子)代码。并且卸载 AppDomain 并不会停止任务。
仅供参考:我参加了 Task 课程,因为它易于使用。如果 Thread 有用:没问题。
有人可以帮助我吗?一个简短的代码 sn-p 会很好:)。
谢谢。
【问题讨论】:
-
您正在使用 System.CodeDom 来编译,对吗?您可以在开始编译之前以及开始加载新的 AppDomain 和创建代理对象之前取消。我认为 CodeDomProvider API 不允许在编译期间取消。
标签: task appdomain cancellation