-1

Office の自動化を少し行っていますが、VB.NET Office 参照 DLL を使用して .doc ファイルを印刷すると、CPU 負荷が大きくなるため、これらのプロセスで単一の仮想コアのみを使用するように制限したいと考えています。

Microsoft のドキュメントでこれに関する情報を見つけることができなかったので、ここで質問しようと思いました。

これは私が印刷に使用しているコードです

   Dim oWordApp As Word.Application
   Dim oTargetDoc As Word.Document
   oWordApp = New Word.Application

   Select Case SQLdr("Priority")
          Case 1
                 oWordApp.WordBasic.FilePrintSetup(Printer:=printPriority1, DoNotSetAsSysDefault:=1)
          Case 2
                 oWordApp.WordBasic.FilePrintSetup(Printer:=printPriority2, DoNotSetAsSysDefault:=1)
          Case 3
                 oWordApp.WordBasic.FilePrintSetup(Printer:=printPriority3, DoNotSetAsSysDefault:=1)
          Case 4
                 oWordApp.WordBasic.FilePrintSetup(Printer:=printPriority4, DoNotSetAsSysDefault:=1)
          Case 5
                 oWordApp.WordBasic.FilePrintSetup(Printer:=printPriority5, DoNotSetAsSysDefault:=1)
   End Select

   oTargetDoc = oWordApp.Documents.Open(SQLdr("DocumentName") & ".doc")
   oWordApp.PrintOut()
   oWordApp.Documents.Close()
   oWordApp.Quit()
4

1 に答える 1

1

このメソッドをバックグラウンドスレッドで実行する方法は次のとおりです。http://msdn.microsoft.com/en-us/library/cc221403 (v = vs.95).aspx

ps CPUが高くなるのはドキュメントのサイズが原因である可能性が最も高いですが、オブジェクトをクリーンアップしていないためにメモリも高くなります。例:

Marshal.ReleaseComObject(app)

マネージコードを介したネイティブメモリ管理に関するベストプラクティスを理解するための記事は次のとおりです。http://jake.ginnivan.net/vsto-com-interop

于 2012-04-03T04:29:41.267 に答える