dass mich gewesen wäre, der sagte, es würde lange dauern. Die COM-API von MapPoint ist single threaded. Um mehrere Routen gleichzeitig berechnen zu lassen, müssen mehrere MapPoint-Knoten gestartet werden, die jeweils einen eigenen Thread haben.
Also für Ihren Quad-Core, werden Sie 2-3 Threads beginnen. Jeder Thread startet seinen eigenen MapPoint und verwendet ihn dann zum Routen. Sie haben KEINE MapPoint pro Kern. Neben OS-Overhead und Ihr E/A-Overhead, wenn Sie eine einzelne MapPoint berechnet eine Route beobachten, werden Sie feststellen, dass spätere Versionen teilweise intern Multi-Threaded und kann etwa 1,5 Kern nehmen, wenn sie verfügbar sind.
Darüber hinaus gibt es viele Fallstricke zu achten. Die eigene Speicherbereinigung von MapPoint ist nicht für die Berechnung von Batchrouten optimiert. Die einfachste Problemumgehung dafür besteht darin, jede MapPoint-Anwendung in regelmäßigen Abständen neu zu starten (mindestens einmal am Tag, aber wahrscheinlich häufiger).
Auch einige Operationen (File Open scheint die Hauptfunktion zu sein) können nicht von mehreren MapPoints gleichzeitig aufgerufen werden. Wahrscheinlich, weil sie versuchen, die gleiche Datei zu öffnen, aber ich habe nicht weiter untersucht. Sie müssen Ihren eigenen Sperrmechanismus implementieren, um dies zu vermeiden.
Saurabh Rat für .NET 4 klingt gut: Ich habe noch .NET 4 Multi-Threading in Wut verwenden - mein MapPoint/.NET Threading Erfahrung mit .NET 2.
Ich weiß nicht, was Ihre App ist, aber wussten Sie, dass ich ein Produkt verkaufe, das Multi-Prozessor MapPoint für Batch-Route Entfernung/Zeit Berechnung verwendet ... :-)
Kann ich TPL mit MapPoint verwenden? Kann ich for-Schleifen parallelisieren? – user2381422