「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>プログラミング]]
-[[戻る>その他、開発の色々]]

* 目次 [#lc8e4fa8]
#contents

*概要 [#u945caf6]
非同期処理の実装方式について。

*非同期処理の実装史 [#z67fe1ac]
**1. Thread、ThreadPool [#c79c02e2]
従来の、マルチスレッド・プログラミング。

-スレッドの並列実行はOSが裏で無意識にしてくれていた。
--タイムスライスで細切れ/ラウンドロビンで論理的に並列実行。
--CPUのコア数に応じて、物理的に並列実行。

-しかし、以下の処理は意識的に実装する必要があった。
--非同期処理をスレッド関数として分離して実装する。
--スレッド関数を作成したワーカースレッドに渡す。
--スレッド関数の結果をメインスレッドで待ち合わせる。

**2. APM、EAP ([[Control.Invoke、.BeginInvoke]]) [#x24ad95f]

**3. TAP ([[async/await]]) [#ae25c1af]

**4. [[Reactive Extensions(Rx)]] [#lf9e0bc2]

*参考 [#b6ba428d]
-.NET開発における非同期処理の基礎と歴史 - @IT~
http://www.atmarkit.co.jp/fdotnet/chushin/masterasync_01/masterasync_01_02.html

-C#次世代非同期処理概観 - Task vs Reactive Extensions~
http://www.slideshare.net/neuecc/asynchronous-rx-andtask

**[[Rx>#lf9e0bc2]] + [[async Task>#ae25c1af]] [#nefc1c9b]
-neue cc - Reactive Extensions + asyncによるC#5.0の非同期処理~
http://neue.cc/2012/07/11_377.html
--非同期メソッド入門 (11) - Rxとの相互運用 - xin9le.net~
http://blog.xin9le.net/entry/2012/12/11/005445
--Curing Your Event Processing Blues with Reactive Extensions (Rx) | TechEd Europe 2012 | Channel 9~
https://channel9.msdn.com/Events/TechEd/Europe/2012/DEV413

----
Tags: [[:プログラミング]], [[:その他、開発の色々]], [[:.NET開発]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS