黙々とC#

"In a mad world of VBA, only the mad are sane" 『VBAという名の狂った世界で狂っているというのなら私の気は確かだ』

C#読書会 『C# ショートコードプログラミング 第2版』に関する感想など 第10~12章

大阪で定期的に開催されているC# 読書会での『C# ショートコードプログラミング 第2版』に関する感想などをまとめました。

C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)

C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)

9章

9.4

タイトルがわかりづらい。 Parallelなら添字の数値指定が不要という話。

9.5

C#4.0 ConcurrentDictionaryクラス

lockが不要!!

複数スレッドで処理をする場合、超便利。

9.6

.ContinueWith()メソッドを使えば、スレッド終了後に実行するコードを指定することが出来る。

10章

10.1

lock ステートメント (C# リファレンス)

10.2

WinFormsでの非同期UI処理

  • 引数のMethodInvoker 型は、Actionデリゲートを渡してもOK
  • this.Invoke()に代えて、BeginInvoke()を使うと非同期実行可能

WPFでの非同期UI処理

  • this.Dispatcher.Invoke()
  • this.Dispatcher.BeginInvoke()

10.3 WPFでのthis.Dispatcher.BeginInvoke()のスマートな書き方

InvokeAsync()メソッドを使えば、 async/awaitを使って短く出来る

Task.Run(async () => { 
    ....
    x = await this.Dispatcher.InvokeAsync(()=> .....)
    ....
})
````


#### 10.4

Main関数にasyncは付けられないので、

非同期処理は別メソッドに切り出して、Main関数から呼び出す。


### 11章

#### 11.1

NEW CODE2は微妙(実務上、defaultが日本語ロケールである保証はない。)

#### 11.2

#### 11.3

エンコーディング判定ライブラリとして、.NET フレームワークのXMLパーサーが使える。

#### 11.4

スルー。

#### 11.5

Cryptopherクラスを使うべき。

#### 11.6

スルー。

### 12章

#### 12.1

ケースバイケース。

#### 12.2 アセンブリの中で定義された値型の一覧を出力する

パワーワード『なんでも入る魔法のコレクション ArrayList』

#### 12.3 

DLLの配置場所を変更する(ExeとDLLを別フォルダに分けたい場合)

manifestファイルで、DLLの参照フォルダを指定可能。

[http://d.hatena.ne.jp/tekk/20110403/1301829578:embed:cite]



[asin:4822298264:detail]