Как дождаться завершения потока, прежде чем переходить к следующему в цикле, не замораживая графический интерфейс в Python - PullRequest
0 голосов
/ 10 декабря 2018

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

  class mainqueue:
      def __init__(self):
          self.mainQueue=queue.Queue()

      def addItem(self,q):
          self.mainQueue.put(q)

      def startConverting(self,funcName):
          for i in range(2):
              print("starting thread {}".format(i))
              t = Thread(target = self.threaded_function)
              t.start()
              t.join()

      def threaded_function(self):

          time.sleep(5)
          print(self.mainQueue.get())


  m=mainqueue()
  def helloCallBack():
     m.addItem("a")
     m.addItem("b")
     m.addItem("c")
     m.startConverting("test")

  B = tkinter.Button(top, text ="Hello", command = helloCallBack)

  B.pack()
  top.mainloop()
...