1

我对 Silverlight 中的线程有疑问。我主要来自 winForms 背景,通常使用以下包装类来执行我的线程:http:

//msdn.microsoft.com/en-us/magazine/cc163644.aspx

它适用于进行窗口开发,但我不能在 Silverlight 中使用它。原因是 ExecutionContext 标记有 [SecurityCritical] 属性,因此无法从 Silverlight 调用。

Silverlight 是否有类似的包装类,或者有什么方法可以解决这个问题?

谢谢!

4

3 回答 3

1

即使在 WinForm 应用程序中,我也不会使用您引用的类。它仍然使用Thread.Abort可以(并且可能会)破坏应用程序域的内容。相反,请使用任务并行库中的新取消机制。不过,您将不得不重新考虑取消工作项的整个方法。这是因为您不能再依赖强制终止,而必须使用合作终止。优点是后者可以保证避免破坏应用域。

于 2012-05-21T15:12:29.413 回答
0

查看仅在 SL5 中可用的取消令牌(通过 CancellationTokenSource)。它使用与您的 MSDN mag ref 中使用的机制类似的机制。

这是一篇很好的“操作方法”文章。此处的一些MSDN 参考资料,以及此处的冗长但很棒的文章

一切顺利,欢迎来到 XAML 编程 :) 你不会回头!

于 2012-05-21T15:21:27.323 回答
0

重写现有代码以使用“任务”(Task Link)或 BackgroundWorker(BackgroundWorker Link)。

我们应该使用最新的技术,这给了我们一个技术进化。

于 2012-05-25T13:03:17.597 回答