Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

C# Lean delegate

432 views

Published on

lesson 2016 2/13

Published in: Education
  • Be the first to comment

C# Lean delegate

  1. 1. 非同期 ASYNC DELEGATE
  2. 2. 1 よく目にするところ FORMアプリケーションにおける。EVENT処理 まだまだありますが・・・・・・・・。 どこで使われるの? 2 EVENT処理? FORMに貼り付けたBUTTONコントロールをクリック イベント発生 デリゲートに登録された自前METHODが処理される。
  3. 3. GENERICGENERIC Delegate lambda Task Async/Await AsyncEvent Begin/End Invoke ASYNC LEAN MAP 排他制御 Thread セマフォ Mutex lock 今回の学習内容
  4. 4. 和訳 そもそもDELEGATEって? • 委任: • 仕事などを、他人にまかせること。委託すること。 • .NetFramworkでは • Methodを変数のように扱える。そのMethodの実行を他のMethodに委任で きるようにするC#の言語仕様
  5. 5. いろいろある これは委任? • 初心者の方 • 自前メソッドを他のメソッドを呼び出す。 • ライブラリ化する。そのライブラリ使用者の自前メッソを利用したいが出来ないので破綻する。 • C++の方 • 利用者の自前メソッドのポインタをライブラリに引数としてそのメッソッドに預けて利用する。 • オブジェクト思考「中級者」 • インターフェイスで事前に利用者のメッソッドを強制したオブジェクトを利用 • オブジェクト思考「中の上級者」 • 親クラスにVirtual Methodを定義しその仮想Methodを利用させる。
  6. 6. DELEGATEがその役割を担います。 C#では • メッソッドを引数(変数)にできる。 • マルチキャスト機能がある。 • 非同期実行できる。 • BeginInvoke EndInvoke ThreadPoolを消費 • .Net1.0 25Thread/1CPU • .Net4.0 250Thread/1CPU • 貪欲に消費せよ!
  7. 7. 簡単にとらえる。 結論 • ライブラリ(クラス)作成者はその内部の処理を利用者の自前 Methodで処理させる。 • 多様な要求が求められる処理を他の利用者に任せる。 • 使用例 • 例外処理の細部処理を利用者に委任する。 • Threadの処理を他のThreadに委任する。

×