我们可以使用多线程Microsoft Word 文档转换为 C# 中的 HTML 吗?
本文关键字:中的 HTML 转换 文档 可以使 多线程 Microsoft Word 我们 | 更新日期: 2023-09-27 17:56:32
我有一个Windows服务,它可以轮询数据库中任何上传的文档,包括doc,docx,pdf和rtf,并将它们转换为HTML并将它们保存到本地文件系统中。文档从数据库中获取并在内存中排队,然后由多个线程拾取以从共享队列中进行处理。
我面临的问题是,处理在一段时间内变慢。转换在最初的几天内发生得更快,例如大小为 50 KB 的文档为 2 秒,几天后转换速度较慢,例如同一文档的转换时间为 20 秒。我所能看到的只是随着时间的流逝,处理时间呈下降趋势。我无法确定是什么导致了这种下降趋势。即使重新启动Windows服务也无济于事。
Microsoft Office 安装在 Windows 服务器上以进行文档转换。每天有近 2000 个文档被转换为 HTML。
所以我的问题是我们可以使用多线程将 Word 文档处理Microsoft HTML 吗?
我认为您已经在使用尽可能多的多线程 - 您无法使 Word 更高效,只需并行运行多个 Word 实例(您正在这样做)。我建议花更多的时间进行调查。
执行一些日志记录/跟踪和分析。找出哪些代码/方法行真的很慢。
如果结果是 Word 很慢,请尝试观察它和系统。缓慢从何而来?它是否用尽了所有的 CPU?也许磁盘被访问过多?也许某处收集了太多临时文件?或者,也许您的RAM用完了,Windows正在疯狂地交换?在最后一种情况下,什么在使用它?也许您没有正确关闭某些内容(例如 Word 本身或您使其打开的文件)?