सीधे नहीं, क्योंकि बूस्ट एक ईवेंट लूप प्रदान नहीं करता है।
किसी अन्य धागे में एक सिग्नल संभालने के लिए, कि एक और थ्रेड को हैंडलर की कतार की जांच करने की आवश्यकता है, इसे चलाने और उन्हें निष्पादित करना चाहिए (जो आमतौर पर किसी प्रकार का इवेंट-लूप होता है)। बूस्ट एक प्रदान नहीं करता है, इसलिए आपको इसे कहीं और से प्राप्त करने की आवश्यकता होगी या इसे लिखना होगा।
यदि आपके पास कोई ईवेंट-लूप है, जो सिग्नल प्रदान नहीं करता है, (या कतारों के साथ कुछ सरल समाधान लागू करता है) तो आप boost.signals2 (boost.signals नहीं) का उपयोग करने में सक्षम होना चाहिए, क्योंकि वह संस्करण नहीं है थ्रेड-सुरक्षित) operator+=
ओवरराइड करके कुछ हैंडलर को कुछ में लपेटने के लिए, जो इसे अन्य थ्रेड में निष्पादन के लिए कतारबद्ध करेगा। आप इसे रिटर्न वैल्यू के साथ सिग्नल के लिए भी कार्यान्वित करने में सक्षम हो सकते हैं (जो क्यूटी द्वारा समर्थित नहीं है, लेकिन बूस्ट द्वारा समर्थित है), लेकिन आपको मृत-लॉक से बचने के लिए सावधान रहना होगा।
स्रोत
2011-02-19 16:32:15
THX इस बहुत उपयोगी नमूने के लिए! चूंकि बढ़ावा :: सिग्नल को बहिष्कृत किया गया है, मुझे boost :: signals2 :: सिग्नल <> का उपयोग करना होगा। – synapse