【发布时间】:2015-05-10 11:57:10
【问题描述】:
我需要将数千个不同格式的 ms office 文档转换为一种通用格式。为了让事情变得更快,我会使用 akka.net 来并行化它。 WordSaveAsActor 应该:
- 在单线程 Appartment 中运行
- 保存 Word 应用程序实例
- 在此实例上进行 COM 调用,例如 SaveAs(..),其路径来自多个并行线程接收到的消息
- 在任何崩溃时自行重启
是否可以在 STA 中运行 akka.net actor?如果我以这种方式使用 akka.net,有什么顾虑吗?
【问题讨论】:
-
Word 不太关心您的图书馆。它的互操作接口是单线程的,您从工作线程进行的任何调用都会自动编组到拥有 Application 对象的线程。它根本不会更快,它会更慢。您最多可以在不同的工作人员中处理不同的文档,每个工作人员都拥有自己的应用程序。这会很快停止缩放,Word 是一个非常繁重的过程。
-
你不是说10000字的应用实例吗?如果我只发送路径,为什么会更慢?即使使用 async/await 而不是 BackgroundWorker 并寻找更好的解决方案,我也会遇到奇怪的效果和崩溃。
标签: c# com ms-word sta akka.net