2010-12-03 13 views
0

私はVS2005を使用しています。私は多くの.docファイルを作成する必要があります。 私のコンピュータ(2GBのRAMを搭載したIntel c2d6600)は10ファイル/分で変換できます。 性能向上のためにはどうすればよいですか?C#アプリケーションでWordとの非常に遅いinterop

マイコード:


oWord = new Word.Application(); 
oMissing = System.Reflection.Missing.Value; 
oDoc = this._oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing); 

... 
//Do something 
... 

//save rtf 
object fileName = this.FileRtf; 
object fileFormat = Word.WdSaveFormat.wdFormatRTF; 
object savechanges = false; 
oDoc.SaveAs(ref fileName, ref fileFormat, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); 
oWord.Quit(ref savechanges, ref oMissing, ref oMissing); 

答えて

4

私の精神的なデバッグ権限を使用すると、以下のコードを最適化する必要があることを教え:

... 
//Do something 
... 
+0

Word.Paragraph oPara; ...; oPara.Range.InsertParagraphAfter()は低速で動作しますが、各ドキュメントにはこの操作が多数あります。 :( – mystdeim

2

oWord = new Word.Application(); 
//and 
oWord.Quit(ref savechanges, ref oMissing, ref oMissing); 

への呼び出しの数を減らすようにしてください言い換えれば、それらを一度呼び、複数のファイルに対してWordのインスタンスを1つ使用します。

+0

ありがとう。私はすでにそれをしましたが、変換はまだ遅いです。 – mystdeim

1

まず、アプリケーションのプロファイルを作成して、時間のかかる場所を調べる必要があります。

プロファイラーのリストについては、SO questionを参照してください。