タグ

2013年8月10日のブックマーク (3件)

  • 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と同時実行制御
  • C# → C# コード生成

    最近の趣味コード。 装飾なしのC#クラスから、ちゃんとした機能付きのC#クラスを作るコード。 仕事で似たようなコードを作って実用しているものの、結構ごてごてしててどうしたものかと悩んでいたところ、もっとシンプルにやる方法を思いついたので実装中。 というか、結構よくコード生成やる。要は、何回か同じの作ってるうちにこなれてきてしまった感じ。 どうやって 生成元: 単一名前空間に生成元になるクラスだけを書いた dll 生成に使ってるもの リフレクションで型情報を取ってきて、それを元に新しい型を作る T4テンプレートを使ってコード生成 Microsoft.Build.dll 使って .csproj ファイルを直書き換えして、生成した .cs ファイルをプロジェクトに登録 どういうものを インターフェイスは get オンリー mutable クラス: get/set あり コレクションは普通の配列を

    C# → C# コード生成
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。