2013-08-19 223 views
1

在一個wx GUI中,我需要調用一個將運行一段時間的方法,並且在我的研究中,我隱約可以理解的唯一一點代碼是一個多處理示例here.我試着去適應這個碼到我的需要,這裏是我的代碼的相關章節:python多處理不處理任務

  def OnStart(self, event): 
       images = self.getImageList() 
       jobs = mp.cpu_count() * 2 
       for job in range(jobs): 
        mp.Process(target = myWorker, args = (images)).start() 

    (external to tv class, displayImage is a @staticmethod)   
    def myWorker(images): 
     print "yo" 
     for image in images: 
      tv.displayImage(image) 

我的問題是永遠不會執行myWorker代碼,也沒有給我的錯誤。

回答

0

發送到args參數的參數應該是一個序列。它應該與myWorker預期的參數數量具有相同的長度。由於myWorker需要一個參數,所以args應該是一個長度爲1的序列。因此,嘗試:

mp.Process(target = myWorker, args = (images,)).start() 

注意逗號images後,這使得(images,)的元組。

雖然不是直接回答你的問題,但你也可以在how to deal with Long Running Tasks找到這個頁面有用。

+0

我試過了,仍然沒有做任何事情。我也嘗試給參數發電機,而不是列表,但我得到了酸洗錯誤。這個網站只是讓我感到滿意,因爲我認爲可能mp會比線程更好。 – chris