新しい非同期呼び出し(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); } }