मैं pygtk का उपयोग करके एक ढांचे द्वारा एक प्रोग्राम लिख रहा हूं। मुख्य निम्नलिखित बातें कर कार्यक्रम:पायथन, थ्रेड और गोबजेक्ट
- कुछ संसाधन
- नजर रखने के लिए सॉकेट
- कॉल
gobject.Mainloop()
से डेटा प्राप्त करने के लिए एक ग्राहक बनाने के लिए एक निगरानी धागा बनाएं लेकिन यह मेरी कार्यक्रम के बाद लगता है मेनलोप में प्रवेश करें, वॉचडॉग थ्रेड भी नहीं चलेगा।
मेरा कामकाज मॉनिटर चीज़ चलाने के लिए gobject.timeout_add
का उपयोग करना है।
लेकिन क्यों एक और धागा बनाना काम नहीं करता है?
यहाँ मेरी कोड है:
import gobject
import time
from threading import Thread
class MonitorThread(Thread):
def __init__(self):
Thread.__init__(self)
def run(self):
print "Watchdog running..."
time.sleep(10)
def main():
mainloop = gobject.MainLoop(is_running=True)
def quit():
mainloop.quit()
def sigterm_cb():
gobject.idle_add(quit)
t = MonitorThread()
t.start()
print "Enter mainloop..."
while mainloop.is_running():
try:
mainloop.run()
except KeyboardInterrupt:
quit()
if __name__ == '__main__':
main()
कार्यक्रम उत्पादन केवल "निगरानी चल ... mainloop दर्ज ..", तो कुछ भी नहीं है। लगता है कि थ्रेड कभी मुख्यलोप दर्ज करने के बाद नहीं चलता है।
आप और क्या उम्मीद करते हैं? उपर्युक्त कोड के साथ, मैं उन दो चीजों को एक बार मुद्रित करने की अपेक्षा करता हूं। – u0b34a0f6ae