как узнать прогресс каждого потока? - PullRequest
1 голос
/ 20 мая 2011

Я новичок в Python, и я создал загружающую программу с многопоточностью, моя проблема в том, что у меня есть только один индикатор выполнения, который отображает прогресс каждого потока. я использую python pyqt4 QThread. Есть ли способ узнать, как продвигается каждый поток загрузки? Вот некоторые части кода.

class Worker(QThread):

    def __init__(self,parent=None):
        QThread.__init__(self,parent)
        self.counter = 0
        self.received = 0
        self.size = 0
        self.f = None
        self.ftp = None
        self.filename = ""

    def __del__(self):    
        self.wait()

    def handleDownload(self, block):
        self.counter += 1
        self.received += len(block)

Затем handleDownload () подаст сигнал индикатору выполнения, чтобы обновить его значение.

ТНХ

1 Ответ

2 голосов
/ 20 мая 2011

Вам необходимо создать объект счетчика, который будет использоваться всеми потоками. Каждый раз, когда поток завершает загрузку, он блокируется с помощью QMutex , увеличивая счетчик и разблокируя, после чего вы можете отправить свой сигнал и изменить индикатор выполнения (хотя вы можете убедиться, что он не обновляется слишком часто)

...