日期:2014-05-17  浏览次数:20959 次

C#操作word出现“The message filter indicated that the application is busy”
我在操作word时如果使用单线程时是正常的,但是目前如果Thread启动多个的话,会出现这种错误:
“The message filter indicated that the application is busy”
查了下资料说是Word COM组件不支持并发,但我在实际项目中是必须要多个线程并发的,那这种情况我该怎么处理呢?

------解决方案--------------------
这个你可以并发处理。把结果用委托通知主线程去与word打交道。但是与word交互就不是多线程了。
不知是不是能不能满足你的需求。
------解决方案--------------------
多进程操作同一个word文档?那你就加锁吧,完成操作释放后别的进程再操作。但是还是不是并发的。
完全并发那是不太可能了。
------解决方案--------------------
事实上,对于任何一种脚本语言,都不能多线程。
试想,你如果在两个窗口操作同一个word文档,会发生什么情况?
stream肯定会写入冲突。