2010-12-03 5 views
0

Ich benutze VS2005 und ich muss viele .doc-Dateien erstellen. Mein Computer (Intel c2d6600 mit 2GB RAM) kann mit 10 Dateien konvertieren/Minute ist es sehr langsam für mich. Was soll ich tun, um die Leistung zu verbessern?Sehr langsam interop mit Word in C# -Anwendung

Mein Code:


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); 

Antwort

4

Meine psychischen Debuggen Kräfte mir sagen, dass Sie den folgenden Code optimieren müssen:

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

Word.Paragraph oPara; ...; oPara.Range.InsertParagraphAfter() funktioniert langsam, aber ich habe viele dieser Operationen in jedem Dokument. :( – mystdeim

2

Versuchen zu reduzieren Anzahl der Anrufe an

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

Mit anderen Worten, rufen Sie sie einmal auf und verwenden Sie eine Instanz von Word für mehrere Dateien.

+0

Danke. Ich habe das schon getan, aber die Konvertierung ist immer noch langsam. – mystdeim

1

Zuerst sollten Sie Ihre Anwendung profilieren, um herauszufinden, wo die Zeit verbracht wird.

Eine Liste der Profiler finden Sie unter SO question.