multithreading - 在一段时间内,python 重复函数?

  显示原文与译文双语对照的内容

我正在做wxPython应用,我需要每 15秒更新一次来自互联网的值。 是否有任何方法可以设置值,并使它的在后台运行,而不打断程序。

编辑:我正在尝试的是:


import thread



class UpdateThread(Thread):


 def __init__(self):


 self.stopped = False


 UpdateThread.__init__(self)


 def run(self):


 while not self.stopped:


 downloadValue()


 time.sleep(15)


def downloadValue():


 print x



UpdateThread.__init__()



时间: 原作者:

你想要的是添加一个线程以指定的速度运行你的任务。

你可以在这里看到这个伟大的答案: https://stackoverflow.com/a/12435256/667433 帮助你实现这里目的。

:下面是应该为你工作的代码:


import time


from threading import Thread # This is the right package name



class UpdateThread(Thread):


 def __init__(self):


 self.stopped = False


 Thread.__init__(self) # Call the super construcor (Thread's one)


 def run(self):


 while not self.stopped:


 self.downloadValue()


 time.sleep(15)


 def downloadValue(self):


 print"Hello"



myThread = UpdateThread()


myThread.start()



for i in range(10):


 print"MainThread"


 time.sleep(2)



希望它可以帮助

原作者:

我已经做了一些类似的事情:

-you需要一个线程来在后台运行。

-And定义'自定义'事件,以便在需要时通知用户界面

创建自定义WX事件

( MyEVENT_CHECKSERVER,EVT_MYEVENT_CHECKSERVER ) = wx.lib. newevent.NewEvent( )

在 UI" init"上,你可以绑定事件,并启动线程


 # bind the custom event 


 self.Bind(EVT_MYEVENT_CHECKSERVER, self.foo)


 # and start the worker thread


 checkServerThread = threading.Thread(target=worker_checkServerStatus


, args=(self,) )


 checkServerThread.daemon = True


 checkServerThread.start()



工作线程可以是类似这样的东西,ps 。 调用方是用户界面实例

def worker_checkServerStatus(caller):


 while True: 


 # check the internet code here


 evt = MyEVENT_CHECKSERVER(status='Some internet Status' ) #make a new event


 wx.PostEvent(caller, evt) # send the event to the UI


 time.sleep(15) #ZZZzz for a bit



编辑: 错过了问题。

...