मैं अपने ओपनजीएल प्रोजेक्ट के लिए लोडिंग स्क्रीन बनाने की कोशिश कर रहा हूं और इसे पढ़ा है कि इसे सही तरीके से काम करने के लिए यह थ्रेडिंग का उपयोग करना सबसे अच्छा था। मैं अपने धागा के साथ अपने कार्य को करने के कोशिश कर रहा हूँ, लेकिन मैं इन त्रुटियों को प्राप्त हो रही है:मैं कक्षा में थ्रेडिंग का उपयोग कैसे करूं?
त्रुटि C2064: अवधि एक समारोह 3 तर्क
लेनेIntelliSense का मूल्यांकन नहीं करता है: निर्माता का कोई उदाहरण "एसटीडी :: धागा :: सूत्र "से मेल खाता है तर्क सूची तर्क प्रकार हैं: (शून्य (स्क्रीन * newScreen, bool activeVisuals, bool activeControls), PlayScreen *, bool, bool)
यह मेरा कोड है:
//LoadingScreen
class LoadingScreen
{
LoadingScreen();
void LoadNewScreen(Screen* newScreen, bool activeVisuals, bool activeControls);
void Setup();
};
void LoadingScreen::LoadNewScreen(Screen* newScreen, bool activeVisuals, bool activeControls)
{
}
void LoadingScreen::Setup()
{
PlayScreen *playScreen = new PlayScreen();
std::thread first(LoadingScreen::LoadNewScreen,playScreen, true, true);// , playScreen, true, true);
first.join();
}
//source.cpp
LoadingScreen loadingScreen;
int main()
{
LoadingScreen loadingScreen = LoadingScreen();
loadingScreen.Setup();
return 0;
}
सुनिश्चित करें कि आप यह समझते समय ओपनजीएल के साथ थ्रेडिंग कैसे खेलते हैं यह सुनिश्चित करें। मुझे नहीं पता कि आप किस तरह के संसाधन लोड कर रहे हैं, लेकिन आप CPU/GPU सिंक्रनाइज़ेशन समस्याओं में भाग ले सकते हैं यदि आप एकाधिक रेंडर संदर्भों का उपयोग करते हैं जो संसाधन या मानचित्र/अनमैप बफर मेमोरी साझा करते हैं। –
@ एंडोनएम। कोलमैन हाँ मुझे थ्रेडिंग के साथ काम करने में परेशानी हो रही है। यह अपवाद फेंकता रहता है कि मुझे इस तरह की कोई जानकारी नहीं मिल रही है: 0x00E9E2C9 पर अनचाहे अपवाद [प्रोग्राम नाम] 0xC0000005: उल्लंघन उल्लंघन स्थान 0x00000020 तक पहुंचें। – WhyYouNoWork