新しい非同期呼び出し(async,wait)を試す

.NET4.5から導入される新しい非同期呼び出し。
こんな感じで使うようです。

  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }

    //内部で非同期処理を行うメソッドにはasyncをつける
    private async void button1_Click(object sender, EventArgs e)
    {
      //戻り値を返す非同期処理の実行。awaitをつけて非同期処理であることを明示する。
      textbox1.Text = await HeaveyProcess();

      //voidな非同期処理の実行
      StopWatch(5);
    }

    private async Task<string> HeaveyProcess()
    {
      await Task.Delay(TimeSpan.FromSeconds(3.0));
      return "重い処理が完了しました!!";
    }

    private async void StopWatch(int sec)
    {
      Console.WriteLine("開始:{0}", DateTime.Now);
      await Task.Delay(TimeSpan.FromSeconds(sec * 1.0F));
      Console.WriteLine("終了:{0}", DateTime.Now);
    }
  }