タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

非同期に関するrumbabaのブックマーク (2)

  • .NET非同期処理(async-await)と例外の制御

    Taskクラスとasync-awaitを使用して非同期処理を記述する場合の、例外にまつわるあれこれをまとめました。 概要: 表面上は殆ど変らない 現実の動作 タスクコンテキストとスレッドコンテキスト スタックウォーク 処理されない例外 この記事は、非同期処理と例外処理について、多少難易度の高い話題を含みます。もし、もっと基的な記述方法や、安全に例外を処理する方法を知りたい場合は、この記事をお勧めします: 「.NET非同期処理で例外を安全に対処する」 この記事の前に、非同期処理の基を扱った記事もあります: 「.NET非同期処理(async-await)を制御する、様々な方法」 非同期処理中に発生する例外の捕捉 非同期処理中に発生する例外を捕捉する方法は、一般的な例外の捕捉とほとんど変わりません。 // 指定されたURLからHTMLコンテンツをダウンロードする public static

    .NET非同期処理(async-await)と例外の制御
  • async/awaitと同時実行制御

    C# 5.0のasync/awaitを使うと、多くの場面ではシングル スレッド的な動作になるし、多くの場面ではlock不要(結果的に、デッドロックが起こりようなくなる)になったりします。 ただし、「多くの場面で」。「必ず」ではないのがはまりどころ。いくつかの場面では、同時実行制御が必要です(普通にマルチスレッドの平行実行になるので、同時に同じデータにアクセスされる可能性を考慮しないとバグります)。 前提知識 いくつか、C# 5.0世代の非同期処理についての前提知識は、以下のスライド(先月末の.NETラボでの発表)を参考にしてください。 5~12ページ: async/awaitの書き方 17~22ページ: スレッドとそのコスト 24~26ページ: スレッド プール 29~32ページ: I/O完了待ちと非同期API 36~40ページ: UIスレッドとディスパッチャー 41~45ページ: 同期コ

    async/awaitと同時実行制御
  • 1