1

在 wx GUI 中,我需要调用一个会运行一段时间的方法,而在我的研究中,我隐约理解的唯一一点代码是这里的一个多处理示例。我试图根据我的需要调整这段代码,这是我的代码的相关部分:

            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 中的代码,也不会给我错误。

4

1 回答 1

0

发送给参数的args参数应该是一个序列。myWorker它的长度应与预期的参数数量相同。由于myWorker需要一个参数,args因此应该是长度为 1 的序列。所以试试:

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

注意后面的逗号images,它构成(images,)一个元组。

虽然不能直接回答您的问题,但您也可能会发现此页面对如何处理长时间运行的任务很有用。

于 2013-08-19T03:25:32.577 回答