C#非同期・並列プログラミング入門

シーシャープ ヒドウキ ヘイレツ プログラミング ニュウモン

C#非同期・並列プログラミング入門の表紙
プログラミング
著者:
北山洋幸(キタヤマ, ヒロユキ)
出版社:
カットシステム
出版日:
2022年10月
ISBN:
9784877835286
在庫:
在庫あり
0

なぜ注目されているか

総合2963位

技書の森解説

『C# 非同期・並列プログラミング入門』 (北山 洋幸 著、カットシステム、2022 年 10 月刊) は、C# の並列処理と非同期処理を、Task クラスと async/await、UI スレッドへの Invoke を軸に解説する本です。版元の書籍ページでは、書名に「Task、async/await、Invoke の要諦を学ぶ」が添えられています。版元は、並列処理は性能の向上を目的にすることが多いものの、本書はユーザーインターフェース (UI) の改善にも多くの紙幅を割いたと案内しており、async/await に絡むデッドロックや例外の捕捉もまとめています。

全 7 章の構成、並列と非同期の概論から Parallel クラスまで

第 1 章「並列と非同期概論」は逐次と並列、プロセスとスレッドによる並列、並列化する目的と課題、タスク並列ライブラリ (TPL) の概論を扱います。第 2 章「並列処理」でスレッドの基本からタスク配列、タスク継続、入れ子タスクと子タスクへ進み、第 3 章「Task と非同期」では同期処理と非同期処理の違い、画面がフリーズする例、Task の Wait メソッドと非同期の関係、非同期プログラミングのガイドラインを取り上げます。第 4 章「Task と UI 更新」は Invoke、BeginInvoke、InvokeAsync による UI の更新と、BackgroundWorker や Queue クラスを使って頻繁に UI を更新する方法を比べ、第 5 章「Task と例外」は async/await と Wait での例外の捕捉、捕捉できない例外、複数のタスクの例外を扱います。第 6 章「排他処理」は Interlocked、Monitor、lock 文、AutoResetEvent、Mutex、Semaphore の各クラスとコンカレントコレクション、第 7 章「Parallel クラス」は Parallel.For と Parallel.ForEach、ループの脱出と取り消し、Partitioner クラス、Parallel.Invoke です。付録は「Visual Studio のインストール」と「プロジェクト作成」の 2 本です。

Task と async/await、UI スレッドという語

Windows のデスクトップアプリケーションでは、画面の部品を更新できるのは UI スレッドだけです。Task は スレッドプール の上で処理を動かす単位で、async/await はその完了を待つ間に UI スレッドを解放する 非同期プログラミング の構文です。第 4 章は Invoke などで UI スレッドへ処理を渡して画面を更新する方法を、第 5 章は例外の捕捉を await した場合と Wait で待った場合に分けて扱います。

共有データを守る排他処理と、性能のための並列化

排他処理は、複数の スレッド が同じ変数やコレクションを同時に書き換えないようにする処理です。第 6 章は、Interlocked による不可分な操作、lock 文と Monitor、ミューテックス やセマフォによる排他、ロックを内部で受け持つコンカレントコレクションを扱います。第 7 章の Parallel クラスは、ループの各回を複数のスレッドに割り振って処理時間を縮める性能のための並列化で、版元の案内では TPL が C# 4.0 と .NET Framework 4 で加わり、async/await は C# 5.0 で導入されたと説明しています。

本書は、Task と async/await の基礎、UI スレッドへの Invoke による画面の更新、デッドロックと例外の捕捉、排他処理、Parallel クラスによる並列化を、全 7 章と付録 2 本に収めています。

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: