देखें मुझे गया हो सकता है कि जो ने कहा कि यह एक लंबे समय ले जाएगा। MapPoint का COM API एकल थ्रेडेड है। समांतर में कई मार्गों की गणना करने का तरीका कई मैपपॉइंट्स को शुरू करना है, प्रत्येक अपने स्वयं के धागे पर।
तो अपने क्वाड कोर के लिए, आप 2-3 धागे शुरू करेंगे। प्रत्येक धागा अपना मैपपॉइंट शुरू करता है, और उसके बाद इसे रूटिंग के लिए उपयोग करता है। आपके पास प्रति कोर एक मानचित्रपॉइंट नहीं होगा। साथ ही ओएस ओवरहेड और आपके आई/ओ ओवरहेड, यदि आप एक मैपपॉइंट एक मार्ग की गणना करते हैं, तो आप पाएंगे कि बाद के संस्करण आंशिक रूप से आंतरिक रूप से बहु-थ्रेडेड हैं और यदि वे उपलब्ध हैं तो लगभग 1.5 कोर ले सकते हैं।
यहां देखने के लिए बहुत सारे मिलचास भी हैं। मैपपॉइंट का अपना कचरा संग्रह बैच मार्ग गणना के लिए अनुकूलित नहीं है। इसके लिए सबसे आसान कामकाज आवधिक अंतराल पर प्रत्येक मैपपॉइंट एप्लिकेशन को पुन: प्रारंभ करना है (दिन में कम से कम एक बार लेकिन शायद अधिक बार)।
इसके अलावा, कुछ ऑपरेशन (फ़ाइल ओपन मुख्य रूप में प्रतीत होता है) कई मैपपॉइंट्स द्वारा एक बार में नहीं कहा जा सकता है। शायद क्योंकि वे एक ही फाइल खोलने की कोशिश कर रहे हैं, लेकिन मैंने आगे की जांच नहीं की है। इससे बचने के लिए आपको अपनी लॉकिंग तंत्र को लागू करने की आवश्यकता होगी।
.NET 4 के लिए सौरभ की सलाह अच्छा लगता है: मैं अभी तक गुस्से में नेट 4 की बहु सूत्रण का उपयोग करना - मेरे MapPoint/नेट सूत्रण अनुभव नेट के साथ है 2.
मैं क्या पता नहीं है आपका ऐप है, लेकिन क्या आप जानते थे कि मैं एक उत्पाद बेचता हूं जो बैच रूट दूरी/समय गणना के लिए बहु-प्रोसेसर मैपपॉइंट का उपयोग करता है ... :-)
क्या मैं मैपपॉइंट के साथ टीपीएल का उपयोग कर सकता हूं? क्या मैं लूप के लिए समानांतर कर सकता हूं? – user2381422