2012-04-02 48 views
-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() 
+0

为什么不直接在后台线程上执行它?这也是客户端自动化不是吗?现在大多数人都想做相反的事情,并使用所有的核心:http://msdn.microsoft.com/en-us/magazine/cc163340.aspx – 2012-04-03 03:19:40

+0

在一个完美的世界中,最好让它在服务器上运行但是在服务器上有几件事情,当它变得CPU饥饿时,它会随着服务器的性能而变化。 – Rambomst 2012-04-03 04:11:59

+0

我实际上是在警告你,我已经记住了知识库文章KB 257757 - 从未做过办公室的服务器端自动化,比如PITA。除非你使用XML来完成,但即使这样我会大量测试。那么关于后台线程的其他想法呢? – 2012-04-03 04:16:33

回答