나는 pygtk를 사용하여 프레임 워크로 프로그램을 작성하고 있습니다. 다음과 같은 일하고 주요 프로그램 :파이썬, 스레드 및 gobject
- 소켓
- 전화
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