非同期処理
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>その他、開発の色々]]
* 目次 [#lc8e4fa8]
#contents
*概要 [#u945caf6]
非同期処理の実装方式について。
*詳細 [#wfdea936]
**非同期処理の定義 [#x26ee802]
-一般的に、非同期処理と言うと、~
同期処理(オンライン)との対比になり、~
同期処理(オンライン)オンラインとの待ち合わせをする。
-同期処理(オンライン)と待ち合わせをしない場合は、~
同期処理(オンライン)から、
--別途スレッドを生成し、そのワーカースレッドで処理させた...
--キューにキューイングして、バッチで処理させたり、
>することになるが、対比するものが無いため非同期か?と言う...
単なるバッチ処理やマルチスレッド処理、若しくは並列処理と...
**非同期処理の実装史 [#z67fe1ac]
-プリミティブな実装を隠蔽する方向で進化しているが弊害もあ...
-例 : https://twitter.com/neuecc/status/1011512880770965504
***1. Thread、ThreadPool [#c79c02e2]
-概要
--従来の(プリミティブな)、マルチスレッド・プログラミン...
-詳細
--スレッドの並列実行はOSが裏で無意識にしてくれていた。
---タイムスライスで細切れ/ラウンドロビンで論理的に並列実...
---CPUのコア数に応じて、物理的に並列実行。
--しかし、以下の処理は意識的に実装する必要があった。
---非同期処理をスレッド関数として分離して実装する。
---スレッド関数を作成したワーカースレッドに渡す。
---(必要に応じて)ワーカースレッドの結果をメインスレッド...
-参考~
・・・
***2. APM (Beginメソッド, Endメソッド) [#j57ffa0c]
-概要
--「[[前述のThread、ThreadPool>#c79c02e2]]」から非同期を...
--代表的なメソッド
---Streamクラスの、BeginRead および EndRead メソッド
---WebRequestクラスの、BeginGetResponse および EndGetResp...
-詳細
--Beginメソッドに Endメソッドのdelegate(≒callback)を渡...
--同期方法はクラスの実装に依る。
-参考
--非同期プログラミング モデル (APM) | Microsoft Docs~
https://docs.microsoft.com/ja-jp/dotnet/standard/asynchro...
***3. EAP ([[Control.Invoke、.BeginInvoke]]) [#x24ad95f]
-概要
--裏で、[[ウィンドウ メッセージ]]を使用した非同期処理方式。
--[[SwingのSwingWorker>https://stackoverflow.com/question...
-詳細
--[[前述のAPM>#j57ffa0c]]と同様に、Invokeメソッドにdelega...
--同期方法は[[ウィンドウ メッセージ]]に依る。
-参考
--[[Control.Invoke、.BeginInvoke]]を参照。
--イベント ベースの非同期パターン (EAP) | Microsoft Docs~
https://docs.microsoft.com/ja-jp/dotnet/standard/asynchro...
***4. Future/Promise [#mfb931c1]
-概要
--C#には無いが、[[JavaScriptのPromise>https://dotnetdevel...
--その他にも、JavaVM(Java、Scala)、C++などで標準ライブ...
-詳細
--非同期のcallbackを、delegateを引数に取るmethod chainに...
--このコーディング・スタイルにより、あまりcallbackっぽく...
--しかし、非同期処理の結果から、また非同期を呼び出すよう...
-参考
--言語によってちょっと違うFuture/Promiseをまとめてみた
---(1): https://qiita.com/reki2000/items/6acf94a07dee8d26...
---(2): https://qiita.com/reki2000/items/c9739a392632a7cb...
---(3): https://qiita.com/reki2000/items/13f94745c6db80a5...
***5. TAP ([[async/await]]) [#ae25c1af]
-概要
--[[async/await]]で、同期呼び出し的に非同期処理を記述可能...
--斬新な仕組みのため、無批判で浸透したが、昨今、振り返り...
-詳細
--同期方法は[[同期コンテキスト>async/await#je52c46b]]に依...
-参考
--[[async/await]]を参照。
--タスク ベースの非同期パターン (TAP) | Microsoft Docs~
https://docs.microsoft.com/ja-jp/dotnet/standard/asynchro...
***6. [[Reactive Extensions(Rx)]] [#lf9e0bc2]
-概要
--[[Silverlight Toolkitに"System.Reactive.dll"が同梱>Reac...
--Observer パターンを実装するフレームワークで、イベントや...
-詳細
--「状態変化を検知して非同期イベントを発火」のようなライ...
業務系にはミスマッチと思われる。ゲーム業界などでは使われ...
--最近の、非同期呼出というコンテキスト上では、[[async/awa...
-参考
--[[Reactive Extensions(Rx)]]を参照
*参考 [#b6ba428d]
-非同期プログラミングのパターン | Microsoft Docs~
https://docs.microsoft.com/ja-jp/dotnet/standard/asynchro...
-.NET開発における非同期処理の基礎と歴史 - @IT~
http://www.atmarkit.co.jp/fdotnet/chushin/masterasync_01/...
-ハッシュタグ #Unity非同期完全に理解した~
https://twitter.com/hashtag/Unity%E9%9D%9E%E5%90%8C%E6%9C...
**SlideShare [#j4d6b3bb]
-C#次世代非同期処理概観 - Task vs Reactive Extensions~
http://www.slideshare.net/neuecc/asynchronous-rx-andtask
-async/await のしくみ~
https://www.slideshare.net/ufcpp/asyncawait-114647813
**[[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 Extens...
https://channel9.msdn.com/Events/TechEd/Europe/2012/DEV413
----
Tags: [[:プログラミング]], [[:その他、開発の色々]], [[:.N...
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>その他、開発の色々]]
* 目次 [#lc8e4fa8]
#contents
*概要 [#u945caf6]
非同期処理の実装方式について。
*詳細 [#wfdea936]
**非同期処理の定義 [#x26ee802]
-一般的に、非同期処理と言うと、~
同期処理(オンライン)との対比になり、~
同期処理(オンライン)オンラインとの待ち合わせをする。
-同期処理(オンライン)と待ち合わせをしない場合は、~
同期処理(オンライン)から、
--別途スレッドを生成し、そのワーカースレッドで処理させた...
--キューにキューイングして、バッチで処理させたり、
>することになるが、対比するものが無いため非同期か?と言う...
単なるバッチ処理やマルチスレッド処理、若しくは並列処理と...
**非同期処理の実装史 [#z67fe1ac]
-プリミティブな実装を隠蔽する方向で進化しているが弊害もあ...
-例 : https://twitter.com/neuecc/status/1011512880770965504
***1. Thread、ThreadPool [#c79c02e2]
-概要
--従来の(プリミティブな)、マルチスレッド・プログラミン...
-詳細
--スレッドの並列実行はOSが裏で無意識にしてくれていた。
---タイムスライスで細切れ/ラウンドロビンで論理的に並列実...
---CPUのコア数に応じて、物理的に並列実行。
--しかし、以下の処理は意識的に実装する必要があった。
---非同期処理をスレッド関数として分離して実装する。
---スレッド関数を作成したワーカースレッドに渡す。
---(必要に応じて)ワーカースレッドの結果をメインスレッド...
-参考~
・・・
***2. APM (Beginメソッド, Endメソッド) [#j57ffa0c]
-概要
--「[[前述のThread、ThreadPool>#c79c02e2]]」から非同期を...
--代表的なメソッド
---Streamクラスの、BeginRead および EndRead メソッド
---WebRequestクラスの、BeginGetResponse および EndGetResp...
-詳細
--Beginメソッドに Endメソッドのdelegate(≒callback)を渡...
--同期方法はクラスの実装に依る。
-参考
--非同期プログラミング モデル (APM) | Microsoft Docs~
https://docs.microsoft.com/ja-jp/dotnet/standard/asynchro...
***3. EAP ([[Control.Invoke、.BeginInvoke]]) [#x24ad95f]
-概要
--裏で、[[ウィンドウ メッセージ]]を使用した非同期処理方式。
--[[SwingのSwingWorker>https://stackoverflow.com/question...
-詳細
--[[前述のAPM>#j57ffa0c]]と同様に、Invokeメソッドにdelega...
--同期方法は[[ウィンドウ メッセージ]]に依る。
-参考
--[[Control.Invoke、.BeginInvoke]]を参照。
--イベント ベースの非同期パターン (EAP) | Microsoft Docs~
https://docs.microsoft.com/ja-jp/dotnet/standard/asynchro...
***4. Future/Promise [#mfb931c1]
-概要
--C#には無いが、[[JavaScriptのPromise>https://dotnetdevel...
--その他にも、JavaVM(Java、Scala)、C++などで標準ライブ...
-詳細
--非同期のcallbackを、delegateを引数に取るmethod chainに...
--このコーディング・スタイルにより、あまりcallbackっぽく...
--しかし、非同期処理の結果から、また非同期を呼び出すよう...
-参考
--言語によってちょっと違うFuture/Promiseをまとめてみた
---(1): https://qiita.com/reki2000/items/6acf94a07dee8d26...
---(2): https://qiita.com/reki2000/items/c9739a392632a7cb...
---(3): https://qiita.com/reki2000/items/13f94745c6db80a5...
***5. TAP ([[async/await]]) [#ae25c1af]
-概要
--[[async/await]]で、同期呼び出し的に非同期処理を記述可能...
--斬新な仕組みのため、無批判で浸透したが、昨今、振り返り...
-詳細
--同期方法は[[同期コンテキスト>async/await#je52c46b]]に依...
-参考
--[[async/await]]を参照。
--タスク ベースの非同期パターン (TAP) | Microsoft Docs~
https://docs.microsoft.com/ja-jp/dotnet/standard/asynchro...
***6. [[Reactive Extensions(Rx)]] [#lf9e0bc2]
-概要
--[[Silverlight Toolkitに"System.Reactive.dll"が同梱>Reac...
--Observer パターンを実装するフレームワークで、イベントや...
-詳細
--「状態変化を検知して非同期イベントを発火」のようなライ...
業務系にはミスマッチと思われる。ゲーム業界などでは使われ...
--最近の、非同期呼出というコンテキスト上では、[[async/awa...
-参考
--[[Reactive Extensions(Rx)]]を参照
*参考 [#b6ba428d]
-非同期プログラミングのパターン | Microsoft Docs~
https://docs.microsoft.com/ja-jp/dotnet/standard/asynchro...
-.NET開発における非同期処理の基礎と歴史 - @IT~
http://www.atmarkit.co.jp/fdotnet/chushin/masterasync_01/...
-ハッシュタグ #Unity非同期完全に理解した~
https://twitter.com/hashtag/Unity%E9%9D%9E%E5%90%8C%E6%9C...
**SlideShare [#j4d6b3bb]
-C#次世代非同期処理概観 - Task vs Reactive Extensions~
http://www.slideshare.net/neuecc/asynchronous-rx-andtask
-async/await のしくみ~
https://www.slideshare.net/ufcpp/asyncawait-114647813
**[[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 Extens...
https://channel9.msdn.com/Events/TechEd/Europe/2012/DEV413
----
Tags: [[:プログラミング]], [[:その他、開発の色々]], [[:.N...
ページ名: