मेरे पास एक ऐसा एप्लिकेशन है जो दूसरे थ्रेड को GetMessage()
लूप में कॉल करता है। किसी बिंदु पर पहला धागा यह महसूस करता है कि उपयोगकर्ता एप्लिकेशन को छोड़ना चाहता है और दूसरे थ्रेड को सूचित करता है जिसे इसे समाप्त करना चाहिए। चूंकि दूसरा धागा GetMessage()
पर फंस गया है, कार्यक्रम कभी नहीं निकलता है। क्या टाइमआउट वाले संदेशों की प्रतीक्षा करने का कोई तरीका है? मैं अन्य विचारों के लिए भी खुला हूं।एक टाइमआउट के साथ GetMessage
संपादित करें:
while (!m_quit && GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
पहले धागा सच करने के लिए सेट m_quit
: (अतिरिक्त स्पष्टीकरण)
दूसरा धागा कोड की है कि टुकड़ा चलाता है।
प्रतीक्षा करें ... लूप में कौन सा धागा 'GetMessage() 'पर प्रतीक्षा कर रहा है? पहला धागा, दूसरा धागा, या दोनों? – templatetypedef
दूसरा धागा GetMessage लूप चलाता है। क्या मुझे कुछ कोड पोस्ट करना चाहिए? – qdii
कोड हमेशा मदद करता है। मैं सिर्फ उलझन में हूं क्योंकि आपका प्रश्न ऐसा लगता है कि दोनों धागे अवरुद्ध हैं। क्या आप सिर्फ एक कस्टम संदेश नहीं भेज सकते हैं "आपको अभी बंद करने की आवश्यकता है?" – templatetypedef