将在窗口服务中使用System.Windows.Controls会导致问题

时间:2009-09-29 23:58:01

标签: c# wpf windows service

背景:我们目前正在考虑将一段RTF文本转换为服务器上的专有格式。 我们目前在System.Windows.Controls命名空间中使用Richtextbox有一些尖峰代码,将文本转换为xaml并通过xslt转换运行到所需的格式。

这在尖峰中运行良好,但担心在生产Windows服务中运行此代码可能会导致一些问题。 (我们之前遇到过在Windows服务中使用System.Drawing命名空间的另一段代码的问题。)

我想知道这里是否有人能够告诉我他们是否在Windows服务中愤怒地使用了System.Windows.Controls并且他们发现它可以安全使用。或者如果你有任何问题,他们是什么?

1 个答案:

答案 0 :(得分:0)

  

我尝试永远不要使用任何控件   愤怒。导致黑暗面它   确实...

UI控件及其方法通常不被视为线程安全,因此您可以自行进行任何同步。处理需要处理的东西,并在测试中勤勉尽责。你可能没事。

如果它有影响,那将是一种阴险和间接的东西。

例如,使用XSLT转换需要加载一次并缓存实例。否则,如果每次需要转换时都使用它的实例,则会生成一堆临时程序集,最终会导致OutOfMemoryException。

Microsoft KB,PRB: Cannot unload assemblies that you create and load by using script in XSLT提供了有关此内容的更多信息。

祝你好运!

ž

编辑 - 删除了对System.Drawing的引用(及其警告),因为我误读了原始问题 编辑 - 添加了关于UI控件和线程安全的评论