multithreading - Strange C++ thread function invocation -


मेरे पास निम्न है:

  वर्ग DThread {virtual void run () = 0; _beginthreadex (शून्य, 0, tfunc, इस, 0, & amp; m_UIThreadID); // वर्ग को थ्रेड फ़ंक्शन परम के रूप में पारित किया जा रहा है ... स्थिर अहस्ताक्षरित int __stdcall tfunc (शून्य * एपीटीआर) {static_cast & lt; DThread * & gt; (एपीटीआर) - & gt; रन (); वापसी 0; } // अन्य सामान}  

रन फ़ंक्शन किसी व्युत्पन्न कक्षा में लागू किया गया है।

क्यों थ्रेड में बुलाया जाने वाला फ़ंक्शन किसी कलाकार के द्वारा बुलाया जा रहा है यह सूचक? क्या यह अच्छा अभ्यास है?

क्या इसे सीधे सीधे नहीं कहा जा सकता?

वास्तविक फ़ंक्शन को चलाने की ज़रूरत होती है वह व्युत्पन्न कक्षा में है।

मेरा प्रश्न है

अधिकांश प्लेटफ़ॉर्म-स्तरीय थ्रेड एपीआई बेयर-हड्डियां सी हैं और नए थ्रेड में चलाने के लिए कार्य करने के लिए एक सादे सूचक लेता है। इसका मतलब सी ++ में है जो कि फ़ंक्शन फ़्री फ़ंक्शन या स्थिर सदस्य होना चाहिए। इनमें से कोई भी किसी भी उदाहरण के लिए प्रवेश नहीं देता है। स्टेटफुल थ्रेड क्लासेस के निर्माण के लिए कार्य थ्रेड निर्माण कॉल के अतिरिक्त "पास-थ्रू" तर्क का शोषण करने के लिए है (यह आमतौर पर एक सूचक है जो बाद में नए थ्रेड में निष्पादित फ़ंक्शन को पारित कर दिया जाता है) और इसे अपने आप में एक संकेतक देता है, यानी यह । स्थिर कार्य तब [आभासी] सदस्य को कॉल कर सकता है, चलाने () या ऐसा कुछ कहें।


Comments