title: How to async this long running method?
body: <p>I have this method which I would like to run asynchronously so that I can do other things while it runs. It does not rely on any other Async method (it doesn't call out to another resource, download a file or anything). I would like to avoid using <code>new Task()</code>, <code>Task.Factory.StartTask()</code> and <code>Task.Run()</code>, if possible.</p>
  
  <p>Is it possible to run this method asynchronously, with tidy, readable code and without using Task explicitly?</p>
  
  <p>If not, what is the tidiest way of running the method asynchronously?</p>
  
  <p>Note: Please don't be concerned with the silly logic in the method - I have boiled it down to be deliberately slow but not show my actual code.</p>
  
  <pre><code>public static void main(string[] args)
  {
    RunMySlowLogic();
  }
  
  private void RunMySlowLogic()
  {
    while (true)
      for (int i=0; i&lt;100000000;i++)
        if (i == new Random().Next(999))
          return true;
  }
  </code></pre>
  
  <p>Currently, I believe that I would need to wrap the method in a lambda or Task and mark it async. Where would the await go?</p>