当一个函数需要几秒钟来完成它的工作时,你需要使用线程,以便使用PyGTK创建的应用程序不会冻结。
但是,当许多函数应该使用线程时,我不知道编写代码的最佳方法是什么。
我发现this answer显示了如何继续。
假设我有3个不同的功能,这意味着我必须这样做:
class ThreadFunction1(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.start()
def run(self):
# do something1
class ThreadFunction2(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.start()
def run(self):
# do something2
class ThreadFunction3(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.start()
def run(self):
# do something3
然后我可以单独调用ThreadFunction1()
,ThreadFunction2()
或ThreadFunction3()
。
我不认为这是最优雅的方式,这会带来很多重复。我该怎么办?