2013年7月10日のブックマーク (1件)

  • neue cc - asyncの落とし穴Part2, SynchronizationContextの向こう側

    非同期QUIZの時間がやってきました!前回はデッドロックについてでしたが、今回はヌルポについて扱いましょう。まずは以下のコードの何が問題なのかを当ててください。ASP.NET MVCです。あ、.NET 4.5ね。 public class HomeController : Controller { async Task DoAsync() { await Task.Delay(TimeSpan.FromSeconds(3)); } public ActionResult Index() { DoAsync(); return View(); } } どこがダメで、どうすれば改善されるのかはすぐ分かると思います。「なにが起こるのか」「なぜ起こるのか」について、考えてみてください。おわり。 さて、で、Ctrl+F5で実行すると、このコードは何の問題もなくふとぅーに動きます。一見何の問題もない。