切换线程

时间:2012-01-27 20:17:30

标签: python multithreading wxpython

我应该继续使用这样的线程还是应该使用多处理?我正试图通过按下按钮来切换while循环。

主题:

class workingthread(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)

    def run(self):
        while 1:
           chat = skype.CreateChatWith(name)
           chat.SendMessage(message)
           t.sleep(timeou)

启动主题:

def this(self,event):
    t = workingthread()
    t.start()

1 个答案:

答案 0 :(得分:0)

你的问题有点不清楚。我正在努力关注“我正试图通过按钮按下来切换while循环”部分。根据我的理解,你希望一直有线程活动(通过我认为不会杀死线程的活动),但你只想偶尔执行while循环体。最简单的解决方案是实现一个布尔变量并像这样扩展workingthread

class workingthread(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.doit = True

    def run(self):
        while 1:
           if doit:
               # if the execution of both statements is desired
               chat = skype.CreateChatWith(name)
               chat.SendMessage(message)
           # sleep in both cases
           t.sleep(timeou)

现在您可以使用按钮事件(您正在使用的任何UI工具包),将方法绑定到它,并可以切换doit的{​​{1}} - 变量。取决于workingthread,是否执行while循环体。