What you'll learn
- 非同期プログラミングとは何かが分かる
- Threadクラスを使った実装方法が分かる
- ThreadPoolを使った実装方法が分かる
- Taskを使った実装方法が分かる
- async,awaitを使った実装方法が分かる
Requirements
- VisualStudio2017が必要です。マイクロソフトより無料でダウンロードできます。
Description
C#の非同期プログラミングは.NETFramework4.5以降はTaskとasync&awaitを使ったプログラミングを主流です。非同期プログラミングになじみのない人には非同期処理事態がわからないと思うのでそのあたりをじっくり解説した上で,C#でできる非同期プログラミングの具体的な実装方法を解説して行きます。
非同期ってはじめて聞く人には何のことかよくわからないと思いますが,簡単に言うと,例えばデータの検索画面があったとして,検索を実行してから検索が完了するまでに10秒くらいかかるとします。その10秒の待ち時間の間,次のどちらの処理がいいでしょうか?
(A)まったく画面操作ができなくて,画面が固まっていて,動いているのか止まっているのかも分からない。
(B)画面操作ができたり,プログレスバーがくるくる動作して「処理中です...」って感じで進捗状況を出してくれて,処理中を示してくれる。
間違いなく後者のほうがいいですよね?
この場合(A)が同期プログラミング,(B)が非同期プログラミングと呼びます。
(A)は一度にひとつの処理しかできないプログラミング手法なので,検索処理を行っている間は,画面操作が一切できなくなります。
(B)は時間のかかる処理をバックグラウンドで処理させながら,画面操作はそのままできるような実装方法になります。
ただ,プログラミング手法といっても,(B)だけを行うということではなく,通常は(A)のプログラミングを行いながら,バックグラウンドで処理させたいときのみ(B)のプログラミングを実施するという形になるので,通常の(A)の実装に加えて,(B)のプログラミングをマスターする必要があります。
Who this course is for:
- C#プログラミング自体の初心者
- C#での非同期プログラミング初心者
Instructor
20年ほどプログラマーとして活動しています。初期の頃はいろんな現場を転々とするプログラマーで10年ほど経験をつみ,その後,大手メーカーに入社し,C#やSQLServerを中心とした製品開発にて設計,製作,保守,プロジェクトリーダー等を10年近く担当。
知識習得のきっかけは,現場に分かりづらいプログラムコードが散乱しており,それらをわかりやすくするために,オブジェクト指向,ドメイン駆動開発,テスト駆動開発,リファクタリング,デザインパターンの書籍などを読み漁りました。その結果,一つのドメイン駆動開発手法にいまはたどり着き,チームのメンバーに伝えていますが,この知識を大勢の方にお伝えすると,予想以上に喜んで頂けているので,私の学んだ知識をできるだけわかりやすくお伝えして,私のした遠回りをあまりしなくてもいいように,解説していきたいと思っています。