Я пытаюсь смоделировать время реального мира. Для этого я использую Qtimer и перенес это в новый поток.
class timer(QObject):
def __init__(self):
super(timer, self).__init__()
self.timer = QTimer(self)
def initTimer(self):
print("init called")
self.pos = time()
self.timer.setInterval(30)
self.timer.setTimerType(Qt.PreciseTimer)
self.timer.timeout.connect(self.update)
self.timer.start()
def update(self):
self.pos+=30/1000
print(time()-self.pos)
class Main(QWidget):
def __init__(self):
super().__init__()
self.th = QThread()
self.timer = timer()
self.th.started.connect(self.timer.initTimer)
self.timer.moveToThread(self.th)
self.th.start()
m = []
for x in range(100000000):
m.append(x)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Main()
window.show()
status = app.exec_()
sys.exit(status)
Ошибка "time () - self.pos Msgstr " увеличивается с большей скоростью при l oop, работающем в основном потоке.
Но когда я убираю для l oop, ошибка не увеличивается. Несмотря на то, что я запускаю таймер в отдельном потоке, почему процессы, выполняющиеся в основном потоке, влияют на процессы, выполняющиеся в другом потоке?