タグ

2015年8月5日のブックマーク (8件)

  • 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# Dictionary<T> の使い方(まとめ)

    Dictionary<T> の使い方についてまとめています。C++を使用していた方にとっては、STLのmapやMFCのCMapにあたるものだといえば、分かりやすいでしょう。 ハッシュテーブルや連想配列などとも呼ばれていますが、要はキー(key)と値(value)のペアを保持しているコレクションです。 ここではDictionary<T> の使い方を順に説明していきます。 まずは、Dictionary<T>の初期化します。宣言時に初期値を設定することもできますが、これはコレクション初期化子を利用しています。 // Dictionaryの初期化 Dictionary<string, string> map = new Dictionary<string, string>() { { "apple", "リンゴ" }, { "banana", "バナナ" }, { "chocolate", "チョ

  • 文字列、暗号化 - .NET Tips (VB.NET,C#...)

    文字列、暗号化編メニュー文字列基改行、タブ文字などの定数 文字列の途中で改行する ダブルクォテーション(")をダブルクォテーションで囲まれた中に記述する 文字列が空かどうか調べる 2つの文字列が等しいかを調べる 大文字小文字、半角全角、ひらがなカタカナの区別をしないで文字列を比較する 文字列内に指定された文字列があるか調べ、その位置を知る 文字列の長さ(文字数)を取得する 文字列から指定した部分を取得する 文字列から1文字取得する、文字列内の文字を列挙する 文字列から一行ずつ読み込む 文字列を指定回数繰り返した文字列を取得する サロゲートペアや結合文字が含まれているか調べる 文字がひらがなか、カタカナか、漢字か、英数字か調べる 整形文字列を連結する 文字列を削除する 文字列から指定した文字を削除する 文字列の前後に付いている余計な文字を削除する 文字列を置換する 文字列を挿入する 小文字

  • Build query string for System.Net.HttpClient get

  • C#ラムダ式 基礎文法最速マスター - @IT

    ■0. まえがき 稿では、小さいテーマではあるが、まだまだ慣れ親しんでいない開発者が少なくないと考えられる「ラムダ式(C#)」についての基礎文法を簡潔にまとめる。「ラムダ式、どう書くんだっけ?」という場合のリファレンスとして活用していただけるとうれしい。また、ラムダ式を敬遠しているという方は、まず稿が学び始める取っ掛かりになるかもしれない(もちろん稿の説明は充実しておらず、すべてを学べるわけではないので、じっくり学ぶには「連載:C# 3.0入門 第1回 ラムダ式」を参照してほしい)。 今年(2010年)に入ってインターネット上では、プログラミング言語の基文法を簡潔にまとめた「○○言語 基礎文法最速マスター」(以降、最速マスター・シリーズ)というブログ記事が多数投稿されている。参考までに、そのいくつかを示そう(そのほかについては、こちらを参照されたい)。 C#基礎文法最速マスター:n

  • 【C#】 usingを使え、使えったら使え (IDisposeも)

    こんな風にスコープを抜けたとき(Func()からリターンしたとき)も誰も参照しなくなったことになるのでそのうち破棄されます。 この「そのうち」っていうところに注意してください。決してすぐに破棄されるわけじゃありません。 GCはそれなりに大変な処理なので、そんなに頻繁に動きません。 それどころか、.NET FrameworkのGCは「メモリが足りなくなってきたら動く」という感じらしいです。 まぁ、これ自体は何も問題ありません(どっちにしろそのうち破棄されるんだから)。 けど、オブジェクトがメモリ以外のリソースを持っているときは問題になることがあります。 たとえば、 こんな場合です(えらく意図的ですが)。 Func()メソッドからリターンした時点でfsやsrを参照しているものは無くなりますから、そのうちGCによって破棄されます。 が、破棄されるまでは"test.txt"はオープンされたままにな

  • WindowsアプリケーションでSystem.Webアセンブリを参照するには?[VS 2010以降] - @IT

    「TIPS:WindowsアプリケーションでHTMLデコード/エンコードを行うには?」では、HTMLテキストの処理方法として、新しいWebUtilityクラス(System.Net名前空間)を紹介しており、.NET Framework 4環境向けのWindowsアプリケーションであれば、もはやHttpUtilityクラス(System.Web名前空間)を利用する必要はない。しかし、過去のコードの活用といった理由で、依然ASP.NET用のHttpUtilityクラスなどをVisual Studio 2010で使いたい場合もあるだろう。 そのような場合、System.Web名前空間のクラスをWindowsアプリケーションのプロジェクトで利用するには、参照設定に「System.Web」が含まれている必要がある。もし含まれていないなら、ソリューション・エクスプローラ内の「参照設定」を右クリックし、

  • AgriKnowledgeシステム