タグ

asyncに関するmsuharaのブックマーク (3)

  • [C#5.0~] async/awaitとTask.Runメソッドを用いた非同期処理のメモ

    こんにちはー、ニアです! 記事では、C# 5.0で追加された async / await とTask.Runメソッドを用いた非同期処理の流れをメモとして載せています。 ※元々この記事は、C#における非同期処理の健忘帳として書いていましたが、この度はコンソールアプリとGUIアプリにおける処理の流れの違いを図も併せてまとめ、記事をリニューアルすることにしました。 1. 非同期処理の作り方 非同期にしたい処理をTask.Runメソッドの引数にデリーゲートとして指定します。Task.Runメソッドにawaitキーワードを付けて、非同期処理が終わるまで後続の処理を待機するようにします。await付きのメソッドを含むメソッドにはasyncキーワードを付けて、戻り値をTask型にします。 ※非同期処理にて、async付きのメソッドの戻り値をTask型にする理由は以下のサイトが参考になります。 asyn

    [C#5.0~] async/awaitとTask.Runメソッドを用いた非同期処理のメモ
    msuhara
    msuhara 2017/08/04
    わかりやすい
  • 非同期メソッド入門 (7) - 内部実装を覗く - xin9le.net

    非同期メソッドはまるで魔法のようです。非同期処理が同期処理とほとんど同じ書き方ができるなんて、もはや革命です。「今まで非同期処理のコーディングに充ててきた時間をすべて返してほしい」とさえ言いたくなるくらいです。けれどそんな素敵な非同期メソッドも、何かカラクリがあってこのような機能になっているはずです。今回はこれを少し紐解いてみましょう。 アプローチ 調査するにもキッカケが何もないとアレなので、以下のような仮定を立てて話を進めます。 async/awaitは何かの糖衣構文で、実際はコンパイラがもっと複雑な形に変換している exeやdllには変換後の形で格納されている C#/VB.NETなどの.NET Framework上で動作する言語は、コンパイルすると中間言語(IL)という形に変換されexeやdllに格納されます。(都合の良いことに)世の中にはexeやdllからILを取り出し、逆コンパイル

    非同期メソッド入門 (7) - 内部実装を覗く - xin9le.net
  • AsyncTaskでブレークポイントを指定する時の注意点|てくめも@ecoop.net

    AsyncTask の中でブレークポイントを設定する場合は、doInBackground() の最初で android.os.Debug.waitForDebugger(); を呼ぶ必要があります。 呼ばないとブレークポイントを無視してしまいます。 デバッガが居なくても以外もwaitForDebugger()で処理を停止してしまうので、 デバッグ実行が終わったらちゃんとコメントアウトしましょう。 #謎の不具合で丸一日はまった… 参考: Debug#waitForDebugger())

    AsyncTaskでブレークポイントを指定する時の注意点|てくめも@ecoop.net
  • 1