2014-10-08 90 views
0

首先,我不知道我想要做的是正確的方式。我想創建一個創建異步函數的函數。PyQt:'異步函數'入門函數

from multiprocessing.dummy import Pool 
pool = Pool(processes=1) 

def asyncstarter(self,func): 
    pool.apply_async(
     func,    
    ) 

def looper(self): 
    while i < 100 : 
     time.sleep(1) 
     i += 1 
self.button.clicked.connect(lambda:self.asyncstarter('self.looper')) 

要清楚,我不是一個有經驗的程序員,我看着的PyQt的qthreads,但它是我很難理解。

無論如何,是否有可能在apply_sync中使用變量?如代碼所示,「func」將根據點擊按鈕發送給它。

回答

0

我不知道這是否是最好的,但我自己找到了解決方案(雖然看起來很諷刺);

def asyncstarter(self,func): 
    command = "pool.apply_async(%s)" %func 
    eval(command) 
    start = command