我们可以使用multithreading将Microsoft Word文档转换为C#中的HTML吗?

我有一个Windows服务,它会轮询数据库中任何类型为doc,docx,pdf和rtf的上传文档,并将它们转换为HTML并将它们保存到本地文件系统中。 文档从数据库中提取并在内存中排队,然后由多个线程拾取以从共享队列进行处理。

我面临的问题是,处理在一段时间内会变慢。 转换在最初几天发生得更快,对于大小为50 KB的文档说2秒,对于同一文档几天时间说20秒后更慢。 随着时间的推移,我所能看到的是处理时间的下降趋势。 我无法确定导致这种下降趋势的原因。 即使重新启动Windows服务也无济于事。

Microsoft Office安装在Windows Server上以进行文档转换。 每天有近2000个文档正在转换为HTML。

所以我的问题是我们可以使用multithreading将Microsoft Word文档处理为HTML吗?

我认为你已经尽可能多地使用multithreading – 你不能使Word更有效率,只需并行运行几个Word实例(你正在做)。 我建议花更多的时间进行调查。

进行一些日志记录/跟踪和分析。 找出那些非常慢的代码/方法行。

如果事实certificateWord很慢,请尝试观看它和系统。 缓慢来自哪里? 它耗尽了所有的CPU吗? 也许磁盘访问太多了? 也许在某处聚集了太多临时文件? 或者也许你用完了RAM而Windows正在疯狂交换? 在最后一种情况下,使用它的是什么? 也许你没有正确关闭一些东西(比如Word本身或你打开它的文件)?