title: calling QThread.exec() method is necessary in QThread?
body: <p>I am not calling <code>exec()</code> in my code, but the <code>timer</code> and <code>QUdpSocket</code> is working fine.  Is <code>exec()</code> used to wait for an <code>event</code> to continue?</p>
  
  <p>UPDATE: the <code>timer</code> was working, because I had not called <code>moveToThread(this)</code> on the <code>QThread</code>, which meant the <code>QThread</code> was actually still part of the <code>main thread</code>.  As for <code>QUdpSocket</code> well I using the polling <code>functions</code>. So it did not need to work with <code>signals</code>.</p>
  
  <p>TIP: if you need to do <code>init</code> stuff, that requires an <code>event loop</code> in your <code>QThread</code>, you can <code>delay</code> calling <code>moveToThread</code> until you don't need the <code>signals</code> anymore, that is practical when the program is loading.  You also don't need to call it in the constructor (you could call it inside <code>run()</code> for example), just copy the <code>this QThread</code> pointer to a variable and make the <code>call</code> later/elsewhere using the pointer.</p>