PyQt5 ile Thread işleminin nasıl yapılacağını bilen varmı?

PyQt5 de bir program yazıyorum. Mail atma uygulaması diyebiliriz. Yapmak istediğim Mail’e bağlanıp yollarken aynı zamanda progressbar çalıştırmak istiyorum. İlk seferde çalışıyor ikinci sefer yapmaya çalıştığımda hata ile karşılaşıyorum. Yardım Ederseniz sevinirim Kodlamalar aşağıdaki gibi.

class maine(QtWidgets.QMainWindow):
def init(self):
super(maine,self).init()
self.ui = b()
self.ui.setupUi(self)
self.dd = threading.Thread(target=self.msgsend)
self.db = threading.Thread(target=self.progressbar)
self.ui.pushButton.clicked.connect(self.secim)
self.ui.pushButton_2.clicked.connect(self.msgsend)
self.ui.pushButton_3.clicked.connect(self.openemail)
def msgsend(self):
try:
self.ui.progressBar.setHidden(False)
ge = self.ui.lineEdit.setEnabled(False)
cs = self.ui.comboBox_2.setEnabled(False)
tex = self.ui.lineEdit_2.setEnabled(False)
texta = self.ui.textEdit.setEnabled(False)
z = self.ui.comboBox.currentText()
with open(‘user.json’,‘r’,encoding=‘UTF-8’) as file :
datas = json.load(file)
if z == ‘Tekil Gönderim’:
self.db.start()
start = time.time()
ge = self.ui.lineEdit.text()
cs = self.ui.comboBox_2.currentText()
tex = self.ui.lineEdit_2.text()
texta = self.ui.textEdit.toPlainText()
mail = smtplib.SMTP(‘smtp-mail.outlook.com’,587)
mail.ehlo()
mail.starttls()
mail.login(f"{datas[‘email’]}",f"{datas[‘passwrd’]}")
mesaj = MIMEMultipart()
mesaj[‘From’] = f"{datas[‘email’]}"
mesaj[‘To’] = f’{ge}{cs}’
mesaj[‘subject’] = f’{tex}’

            body = f'''
                {texta}
         '''
            body_text = MIMEText(body,'plain')
            mesaj.attach(body_text)

            mail.sendmail(mesaj['From'],mesaj['To'],mesaj.as_string())
            finish = time.time()
            self.ui.textBrowser.setText(f'Mail Başarılı bir şekilde {ge}{cs} kişisine ulaştırıldı.')
            print(finish-start)
            self.ui.lineEdit.setEnabled(True)
            self.ui.comboBox_2.setEnabled(True)
            self.ui.lineEdit_2.setEnabled(True)
            self.ui.textEdit.setEnabled(True) 
            self.ui.lineEdit.clear()
            self.ui.lineEdit_2.clear()
            self.ui.textEdit.clear()
        elif z == 'Toplu Gönderim':
            self.db.start()
            ge = self.ui.lineEdit.text()
       with open(f'{ge}','r+',encoding='UTF-8') as file :
            x = file.readlines()
          for i in x :
                    tex = self.ui.lineEdit_2.text()
                    texta = self.ui.textEdit.toPlainText()
                   mail = smtplib.SMTP('smtp-mail.outlook.com',587)
                    mail.ehlo()
                    mail.starttls()
                  mail.login(f"{datas['email']}",f"{datas['passwrd']}")
     mesaj = MIMEMultipart()
           mesaj['From'] = f"{datas['email']}"
                mesaj['To'] = f'{i}'
                 mesaj['subject'] = f'{tex}'
                  body = f'''
                      {texta}

                   '''
                    body_text = MIMEText(body,'plain')
                    mesaj.attach(body_text)
                    mail.sendmail(mesaj['From'],mesaj['To'],mesaj.as_string())
                    with open('sendmsg.json','w+',encoding='UTF-8') as file :
                        file.write(f'Mail Başarılı bir şekilde {i} kişisine ulaştırıldı.\n')
                    with open('sendmsg.json','r+',encoding='UTF-8') as file :
                        x = file.read()
                    bar = self.ui.textBrowser.toPlainText()
                    bar += x
                    self.ui.textBrowser.setText(bar)
            self.ui.lineEdit.setEnabled(True)
            self.ui.comboBox_2.setEnabled(True)
            self.ui.lineEdit_2.setEnabled(True)

            self.ui.textEdit.setEnabled(True) 

            self.ui.lineEdit.clear()

            self.ui.comboBox_2.clear()

            self.ui.lineEdit_2.clear()

            self.ui.textEdit.clear()

            self.ui.progressBar.setValue(0)

            self.ui.progressBar.setHidden(True)
    except Exception as err :
        print(str(err))                    
 def progressbar(self):
      try:
        with open('email.txt','r') as file:
            cc = file.readlines()
            e_mailsayi = len(cc)

        print(e_mailsayi)

        mn = self.ui.comboBox.currentText()

        if mn == 'Tekil Gönderim':

            z = 0

            while z <= 100:

                self.ui.progressBar.setValue(z)

                time.sleep(0.12)

                z+=1

            self.db._stop()

        elif mn == 'Toplu Gönderim':

            z = 0

            while z <= 100:

                self.ui.progressBar.setValue(z)

                time.sleep(0.12*e_mailsayi)

                z+=1

            self.db._stop()

    except Exception as err:

        print(str(err))