आम तौर पर, क्यूटी के साथ आपके पास सिग्नल और स्लॉट के साथ एक ईवेंट लूप के साथ एक QAplication आधारित क्लास होगा, जो मुख्य कार्य से तब तक बाहर नहीं निकलेगा जब तक आप चाहें नहीं। उस स्थिति में आप आसानी से QThread :: finish() सिग्नल को एक स्लॉट से कनेक्ट कर सकते हैं जो जांचता है कि सभी धागे किए गए हैं या नहीं।
किसी ईवेंट लूप और सिग्नल/स्लॉट के बिना, क्यूटी थ्रेड में अन्य थ्रेडिंग कार्यान्वयन में कोई जॉइन() विधि नहीं है, लेकिन QThread :: प्रतीक्षा() कुछ हद तक समान है।
bool QThread::wait(unsigned long time = ULONG_MAX)
ब्लाकों इन शर्तों में से किसी तक धागा पूरा किया जाता है:
- इस
QThread
वस्तु समाप्त हो गया है निष्पादन (अर्थात जब यह QThread::run()
से लौटने) के साथ जुड़े धागा। धागा समाप्त होने पर यह फ़ंक्शन true
लौटाएगा। यदि थ्रेड अभी तक शुरू नहीं हुआ है तो यह true
भी देता है।
time
मिलीसेकंड समाप्त हो गया है। यदि समय ULONG_MAX
(डिफ़ॉल्ट) है, तो प्रतीक्षा कभी भी टाइमआउट नहीं होगी (थ्रेड QThread::run()
से वापस लौटना होगा)। प्रतीक्षा समय समाप्त होने पर यह फ़ंक्शन false
वापस कर देगा।
+1, जब आप मुझे इसे हराते थे तो मैं इसे लिखने की प्रक्रिया में था। [यहां QThread :: प्रतीक्षा] पर दस्तावेज़ है (http://qt-project.org/doc/qt-4.8/qthread.html#wait) – tmpearce
@tmpearce इसके बारे में क्षमा करें :) और सही, क्यूटी दस्तावेज़ सबसे अच्छी जगह है पहले देखो – Archie