- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
MSDN for .NET System.Xml.Xsl.XslCompiledTransform 类状态:
Thread Safety
[1] The XslCompiledTransform object is thread safe once it has been loaded. In other words, after the Load method has successfully completed, the Transform method can be called simultaneously from multiple threads.
[2] If the Load method is called again in one thread while the Transform method is being called in another thread, the XslCompiledTransform object finishes executing the Transform call by continuing to use the old state. The new state is used when the Load method successfully completes.
[3] Note The Load method is not thread safe when called simultaneously from multiple threads.
我(相当)确定段落 [1] 和 [2] 指的是 Load()
/Transform ()
在相同 XslCompiledTransform
对象实例上被调用(在多个线程中)。但是对于 [3],有没有人知道它们是指同时 Load()
在 same 实例上,还是(有一些静态的东西)这意味着)您必须从所有实例中相互排除并发Load()
?
最佳答案
查看 ILSpy 中的代码,没有可见的静态同步构造。您可以在不同线程的不同实例上调用 Load()
。
可以预见,Load
将实例化一个 XSLT 编译器并将样式表编译为一个内部对象,该对象稍后将由 Transform 方法使用。这解释了 [1]:一旦转换被编译,它就可以从不同的线程调用,因为内部对象现在是只读的。
再次调用 Load
将重新编译内部对象,因此它必须与当前正在进行的任何转换同步,这占 [2]。
从不同的线程同时调用编译器会导致构建最终内部转换对象的竞争 ([3])。尽管不同的实例是独立的,但它们都有自己的内部转换对象,并且每次调用 Load 时都会实例化一个新的编译器。
关于.net - XslCompiledTransform 线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27316343/
我有一个包含 805 模板的大型 XSLT 文件,根据系统和环境,该文件会因堆栈溢出而失败。 开发环境为 Windows 7、InfoPath 2010 和 C#。尽管安装了 .NET 4.0,但此版
MSDN for .NET System.Xml.Xsl.XslCompiledTransform 类状态: Thread Safety [1] The XslCompiledTransform ob
我在搞乱编码。 一方面,我有一个以 UTF-8 格式响应我的 url(我非常确定,感谢 firebug 插件)。 我使用以下代码打开读取 UTF-8 内容的 url: StreamReader rea
XslTransform 似乎已被 Microsoft 弃用,而支持 XslCompiledTransform。从理论上讲,如果我在应用程序执行期间只进行一次转换,那么解释 XSLT(通过 XslTr
使用以下代码: XDocument transformedDoc = new XDocument(); using (XmlWriter writer = transformedDoc
我正在尝试使用 XslCompiledTransform,并将输出用作 XPathDocument。 有什么想法吗? 最佳答案 先生。琼斯的回答对我很有帮助,但我发现最后一行不起作用。我最终这样做了:
不幸的是,我正在开发一个对所有内容都使用 XSL 的网站。表现可怕。花在 JIT 上的时间大约是 30%! 我一直认为这家公司需要 4 台服务器来运行其小站点这一事实归结为 XSL,但我终于做了一个适
我想读取一个 xml 文件,应用一个转换,然后写入另一个文件。我能想到的最好的方法是: using (XmlTextReader reader = new XmlTextReader(new File
我正在尝试将大型应用程序从 XslTransform 迁移到已编译的 xsl 文件和 XslCompiledTransform。 应用程序使用 Xsl 创建 HTML 文件,转换数据 (Xml) 通过
我正在使用 XslCompiledTransform 将 XML 文件转换为 HTML。有什么方法可以阻止它使用自闭合标签。 例如 无论我使用哪种浏览器,span 上的自闭合标签都会弄乱我的文
为 制作了一个带有输出指令的 xslt 模板: 在 xsl-debug 中我接收正确 在 html 之上。 但是当我使用 XslCompiledTransform 等时..输出开始于 因此,缺
我有一个 XslCompiledTransform对象,我希望输出为 XmlReader对象,因为我需要通过第二个样式表传递它。我有点困惑 - 我可以成功转换一些 XML 并使用 StreamRead
我试了又试,但我无法在不从磁盘加载样式表(通过将 URI 传递到 XslCompiledTransform.Load() 方法)的情况下进入 XslCompiledTransform。 我完全清楚,如
我有以下代码需要从 VS 2003 (.Net 1.1) 迁移到 VS 2008 (.Net 2+)但我收到编译错误 - System.Xml.Xsl.XslTransform' 已过时:此类已被弃用
我有以下代码,我想使用UTF-8编码格式输出xml数据。但它始终以 UTF-16 格式输出数据: XslCompiledTransform xslt = new XslCompiled
我正在尝试在 Excel 中获取一张表并使用 VBA 创建一个 XML 文档,然后使用 XSLT 样式表转换该文档。 我已经包含了下面的代码,直到我遇到问题为止。 当我尝试像这样创建一个对象时: Di
有人能告诉我为什么会这样吗? 我的 XML 是: some text goes here a top elem today a subnode
以下代码工作并从本地磁盘获取 XSL 和 XML,并将转换后的 XML 返回到变量 Xtransoutput。 Dim XmlInputPath As String = "C:\Any.XML" Di
我使用以下 VB.NET 代码将一些 XML 转换为新的 XML,然后继续处理。这是一次性过程,而不是多次完成的过程,因此据我所知,缓存不会提高效率。 代码有效,但我发现性能问题。我知道性能问题可能与
我有以下 xslt ,我需要使用 xslt 2.0 版功能,如“格式日期”。如何使用 XsltCompiledTransform 类(c#、.net 4.5)声明 Xsl 工作表使用 2.0 版。
我是一名优秀的程序员,十分优秀!