Ich mache ein wenig Office-Automatisierung und beim Drucken einer .doc-Datei mit VB.NET Office-Referenz-DLLs verursacht es große CPU-Auslastung, also möchte ich diese Prozesse auf einen einzigen virtuellen Kern beschränken.Office-Automatisierung und Prozess-Affinität
Ich konnte nichts in Microsofts Dokumentation darüber finden und ich dachte, ich würde hier fragen, da jeder immer so hilfreich ist.
Dies ist der Code, den ich
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()
Warum machst du es nur auf einem Hintergrund Thread? Auch das ist Client-seitige Automatisierung, nicht wahr? In diesen Tagen wollen die meisten Leute das Gegenteil tun und alle Kerne verwenden: http://msdn.microsoft.com/en-us/magazine/cc163340.aspx –
In einer perfekten Welt wäre es schön, es auf einem Server laufen zu lassen Für sich allein gibt es jedoch einige Dinge auf dem Server, und wenn es CPU-hungrig wird, beeinträchtigt es die Leistung des Servers. – Rambomst
Ich warnte Sie tatsächlich davor, ich habe den KB Artikel KB 257757 auswendig gelernt - tun Sie nie serverseitige Automatisierung des Büros, solch ein PITA. Außer du machst es mit XML, aber selbst das würde ich stark testen. Also was ist mit mir anderer Idee des Hintergrundthreads? –