我最近在Word對象模型的性能方面遇到了一些問題。在我爲Word編寫的插件中,我需要解析文檔中的所有單詞,並替換其中的一些單詞,或者向用戶提供具有多個替換單詞的單詞。我知道一次向Word提供所有文檔文本內容並將其處理並重新放回所有文檔都會更快,但這不適合我的加載項,因爲我需要訪問範圍表示具有多個替換的單詞的對象,以便我可以以某種方式將它們標記在文檔中,並向用戶呈現工具提示,從而可以從中選擇他想要的替換。從多個線程訪問word文檔的單詞列表
因此,目前我腦海中出現的單次極速改善是多線程化,因爲大多數人已經擁有雙核或更好的性能。問題在於,你在Google上發現的所有內容都表明,在Office中進行多線程是一件非常糟糕的事情。
那麼有沒有人設法以大多數用法的方式做到這一點?通過這個我的意思是,如果它也適用於其他電腦那麼發展呢?
第二個問題是:有人知道爲什麼Microsoft將Word(Office)對象模型限制爲單線程?只是出於好奇:)
其實,當你創建一個C#應用程序,它增加了' [STAThread]'屬性默認... – configurator 2011-03-18 13:46:54
@configurator,你是對的。我可以發誓C#曾經是MTA,但我在2008年和2010年做了一個測試,他們都使用STA。也許2005年使用MTA。我可能不得不挖掘一箇舊版本,並找出現在。 – 2011-03-18 13:55:07
我認爲STA自2003年以來一直是默認的...... – configurator 2011-03-18 13:58:21