Очень медленное взаимодействие с Word в приложении c # - PullRequest
0 голосов
/ 03 декабря 2010

Я использую VS2005 и мне нужно создать много файлов .doc.Мой компьютер (Intel c2d6600 с 2 ГБ ОЗУ) может конвертировать со скоростью 10 файлов в минуту, это очень медленно для меняЧто я должен сделать, чтобы улучшить производительность?

Мой код:


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

Ответы [ 3 ]

4 голосов
/ 03 декабря 2010

Мои умственные способности отладки говорят мне, что вам нужно оптимизировать следующий код:

...
//Do something
...
2 голосов
/ 03 декабря 2010

Попробуйте уменьшить количество вызовов до

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

Другими словами, вызовите их один раз и используйте один экземпляр Word для нескольких файлов.

1 голос
/ 03 декабря 2010

Во-первых, вы должны профилировать свою заявку, чтобы узнать, на что тратится время.

Список профилировщиков см. В этом ТАК вопрос .

...