के तहत थ्रेड को निलंबित कर दिया गया है, क्या मुझे सीई या विजुअल सी ++ का उपयोग करके, सीई या विजुअल सी ++ का उपयोग किए बिना विंडोज सीई के तहत एक थ्रेड निलंबित कर सकता है, फिर से काम करने या निलंबित कार्यों के बिना? एक ही तरीका है इसे करने में मुझे देख सकते हैं की तरहमुझे कैसे पता चलेगा कि विंडोज सीई
int Count = SuspendThread(ThreadHandle);
ResumeThread(ThreadHandle);
यह कुछ समस्याओं की एक जोड़ी है, सबसे पहले है, मैं नहीं बल्कि धागा निलंबित नहीं चाहते हैं, और दूसरी बात को निलंबित असफल हो सकता है अगर धागा कर्नेल कोड चल रहा है । मैं इसके आसपास काम कर सकता हूं, लेकिन मुझे लगता है कि एक और अधिक सुरुचिपूर्ण समाधान होना चाहिए। मैं इसे
int Count = ResumeThread(ThreadHandle);
SuspendThread(ThreadHandle);
का उपयोग करके इसे उलट भी सकता है लेकिन इसमें समान समस्याएं हैं। हैंडल से निलंबन गिनती प्राप्त करने का कोई भी अच्छा वैकल्पिक तरीका?
हाँ, यह करने का यही एकमात्र तरीका है। – ctacke
दिलचस्प जवाब। कितने समय तक इंतजार करेंगे, सभी मामलों में 1 एमएमएस पर्याप्त होगा, या क्या यह धीमी होने के लिए उत्तरदायी है? –
असल में मुझे लगता है कि आप प्रतीक्षा समय का उपयोग कर सकते हैं 0. WaitForSingleObject() राज्य का परीक्षण करेगा और तुरंत लौट आएगा। आप केवल WAIT_OBJECT_0 के विरुद्ध वापसी मूल्य की जांच करने में रुचि रखते हैं।जो आपको बताएगा कि धागा राज्य संकेतित है और इसलिए निलंबित नहीं किया गया है। – ralphtheninja