0

我创建了一个使用多个线程运行的 GUI Scraper(Qt 和 Python).. GUI 似乎挂起,直到所有线程都被生成.. 我正在运行带有 200-300 个线程的刮板.. 在创建所有线程之后 GUI正在响应..有没有办法阻止应用程序在创建线程时不响应..

我在主线程中创建了一个新的 Python 线程,然后在下面的 QThread 类中的代码中调用 tempthread

def tempthread(self):
        self.tempt = threading.Thread(target=self.spawn)
        self.tempt.daemon=True
        self.tempt.start()

def spawn(self):

        global noofthreads
        for xd in range(0,noofthreads):
            t = threading.Thread(target=self.startscrape)
            t.daemon = True 
    t.start()    
            tarray.append(t)
            t1 = threading.Thread(target=self.waitthreads)
            t1.start()
def waitthreads(self)
        for t in tarray:
            t.join()

        self.message.emit("Program Execution Completed")
4

1 回答 1

0

当您需要大量线程时,最好使用线程池。我发现有 python 绑定,所以你绝对应该试试这个。这是类似的话题

遗憾的是QtConcurrent没有 python 绑定。这是一个不错的 API,但它使用模板,而且文档记录很差。

于 2013-09-13T10:13:37.173 回答