title: Convert a function to async task
body: <p>I have the following function:</p>
  
  <pre><code> private void SendSMSs(List&lt;SMS&gt; smsList)
      {
          foreach (var sms in smsList)
          {
             SendSMS smsSend = new SendSMS(sms.message, sms.number, 0, SmsResponseCallback);
              Console.WriteLine("Sent a SMS to " + sms.number);
          }
      }
  
      /// &lt;summary&gt;
      /// Call back for sending a sms
      /// &lt;/summary&gt;
      public void SmsResponseCallback(FSK_SendSMS.FSK_SendSMS.SMS_Result result)
      {
          Console.WriteLine("Succesfully sent a SMS to " + result.Destination + " with result: " + result.Result);
      }
  </code></pre>
  
  <p>Now my issue is that each sms waits till it gets a response from the recipient.</p>
  
  <p>I want to create a task for each sms that needs to be sent. So that they can all be sent asynchronously.</p>
  
  <p>The function SendSMSs does need to wait for the tasks to Finnish. It must return as soon as it can, and the sms will then be sent in their own time?</p>
  
  <p>So how can I create a task which will start straight away and then I can move on and create the next.</p>