2009-06-24 16 views
7

क्या आप बूस्ट थ्रेड को रद्द कर सकते हैं क्योंकि आप एक पर्थ्रेड करेंगे?बूस्ट थ्रेड रद्द करना

यदि वे दुर्घटनाग्रस्त हो जाते हैं तो वे कार्यकर्ता थ्रेड को समाप्त करने के लिए एक साधारण निगरानीकर्ता लिख ​​रहे हैं और बूस्ट थ्रेड लाइब्रेरी में केवल थ्रेड को रद्द करने का कोई तरीका नहीं प्रतीत होता है।

उत्तर

10

वे रद्द करने का समर्थन नहीं करते हैं, जो एक अच्छी बात है क्योंकि यह सभी प्रकार की सूक्ष्म समस्याओं का कारण बन सकती है।

थ्रेड बाधाओं को कवर करने वाले दस्तावेज़ों के अनुभाग पर एक नज़र डालें और boost :: thread_interrupted अपवाद और फैशन कुछ ऐसा जो आपको चीजों को साफ करने के दौरान जो भी चाहते हैं उसे पूरा करने की अनुमति देता है।

+0

ऐसा लगता है जैसे थ्रेड थ्रेड बाधा आपको मदद नहीं करेगी अगर धागा लूप में फंस जाता है, जो कि मैं उन चीजों में से एक हूं जिनकी मैं रक्षा करने की कोशिश कर रहा हूं। जबकि मैं पोर्टेबिलिटी छोड़ रहा हूं, मुझे लगता है कि मैं एक पाथ्रेड क्लीनअप हैंडलर का उपयोग कर सबसे अच्छा हूं। –

+3

या लूप में कहीं भी एक बाधा बिंदु डालें। यह प्रदर्शन हिट का अधिक नहीं होना चाहिए, खासकर अगर धागा पहले से चल रहा है। और शेष बाधा बुनियादी ढांचा पहले ही मौजूद है। – Duck

2

वे बॉक्स से बाहर रद्द (के रूप में बतख से कहा), तथापि प्रसंस्करण अपने कार्यकर्ता धागा (रों) के अंदर चल रहा पर निर्भर करता है का समर्थन नहीं करते, मैं धागा सूचित करने के लिए एक boost::condition उपयोग करने पर विचार करता हूँ कि यह जल्द से जल्द मौके पर (साफ) खत्म करना चाहिए।

संबंधित मुद्दे