タグ

良いまとめに関するnkuriのブックマーク (3)

  • 非同期処理とディスパッチャー

    24日・25日とWDDに行ってたわけですが。 講演者の皆様、UIスレッドとディスパッチャーの話で苦労されてた印象。この辺りの仕組み、どうなんだろうなーとか、少し書いておこうかと。 UIスレッドに紐付いたクラス まず前提。 UIスレッド まず、GUIがらみのクラスは、単一スレッドからしかアクセスできないように作ってあります。スレッド安全に作ろうとするとパフォーマンスが出ないので、いっそのこと、UIスレッド以外からアクセスがあったら例外を出して止まるように作ってあります。 この、GUIコンポーネントと紐付いているスレッドがUIスレッドです。 エンド ユーザーからの入力なんかを受け付けているのもこのUIスレッドで、UIスレッド上で時間がかかる処理をすると、UIがフリーズします。 なので、時間がかかる処理をするときは、一度別スレッドで処理して、結果をUIスレッドに戻すというフローが必要です。 WP

    非同期処理とディスパッチャー
  • 第2回 ラムダ式と型推論(2/3) - @IT

    使える既存のデリゲート ラムダ式を多用するようになると、いちいちデリゲート型を宣言することが面倒になってくる。 筆者個人としては、用途ごとに個別のデリゲート型を宣言する方がよいとは思うが(別個に宣言されていれば互換性があるとは見なされないので誤代入を防げるし、用途を連想しやすい名前を与えられる)、実際にありとあらゆる用途のデリゲートを個別に宣言すると扱いにくいソース・コードになりがちである。 そうすると、クラス・ライブラリが提供する基的なデリゲート型が活用できれば話は簡単になる。ここでは実際に、そのような目的で使用できるデリゲート型をいくつか紹介しよう。 ■MethodInvokerデリゲート(System.Windows.Forms名前空間) 引数なし、戻り型voidに限って使用できるデリゲート。なんと.NET Framework 1.0から存在する最古参のデリゲート型。しかし、Sys

  • C#の言語バージョンと.NETバージョン

    概要 C#の言語機能のバージョンと.NET のバージョン(ターゲット フレームワーク。実行環境には大して手が入っていないので、おおむね標準ライブラリのバージョンのこと。どのクラス・どのメソッドが使えるか)は、 基的には独立しています。なので、C#の新機能の多くは古い .NET 上でも動きます。 「多くは」であって、「全て」ではないわけですが。 ここが今日の主題。 どういう機能は、どういう理由で動かないか。 どうやっても動かないのか、それとも、動かしようがあるのか。 ということについて書いていきます。 具体例 例えば、諸事情あってWindows XP (標準インストールの状態で .NET Framework 2.0)から抜けられないという場合でも、Visual Studio 2015を使って、C# 6で開発したアプリを動かすこともできます。 しかし、いくつかの機能は.NETのライブラリに依

    C#の言語バージョンと.NETバージョン
  • 1