title: QtCore.QTimer.singleShot lags when calling a function iteratively
body: <p>I have pyqt gui with some text display that is updated periodically via function
  updateTelemetry()</p>
  
  <p>Here is how my code works. When the user clicks the button, the buttonHandler is called. And updateTelemetry is called iteratively every 10s.:</p>
  
  <pre><code>def buttonHandler(self):
      self.monitor=true
      self.updateTelemetry()
  
  def updateTelemetry(self):
     try:
          #update values on gui
     finally:
         if self.monitor:
            QtCore.QTimer.singleShot(10000, self.updateTelemetry)
  </code></pre>
  
  <p>This approach works, and lets me get an update around every 10s. However, every 10s, the entire gui freezes for a few seconds and then updates. Something that I'm doing seems to be blocking. I'm not sure how that is happening. I thought that qtimer.singleshot would create a separate thread?</p>
  
  <p>Is there a better way to do what I'm doing?</p>