title: How should i run a background thread in c# > 4.0
body: <p>I have mainly been reusing a code snippet from old times:</p>
  
  <pre><code> public void Start()
          {
              renewalThread = new Thread(() =&gt;
              {
  
                  while (!disposed)
                  {
                      Thread.Sleep(TimeSpan.FromSeconds(10));
  
                      try
                      {
  
                          if (LogUpdated != null)
                              update();
                      }
                      catch (Exception ex)
                      {
  
                      }
                  }
  
              });
              renewalThread.Start();
          }
  </code></pre>
  
  <p>Are there more elegant ways to do this, thinking about the new async/await stuff?
  What are the main differences to a solution doing something like</p>
  
  <pre><code>Task.run( () =&gt;
  {
  await Task.delay(10000);
  
  update code
  }, __.LongRunning);
  </code></pre>