例16-1
スレッドの明示的な作成
この例は
ExplicitThreading
ディレクトリ以下の
ExplicitThreading.sln
ソリューションに含まれる
Program.cs
ファイル全体に相当します。
例16-2
スタック上のスレッドごとの状態
この例は
StackState
ディレクトリ以下の
StackState.sln
ソリューションに含まれる
Program.cs
ファイル全体に相当します。
例16-3
スレッド間での間違った状態共有
この例は
BadStateSharing
ディレクトリ以下の
BadStateSharing.sln
ソリューションに含まれる
Program.cs
ファイル全体に相当します。
例16-4
ローカル変数だが、共有状態になっている
この例は
BadSharedLocalState
ディレクトリ以下の
BadSharedLocalState.sln
ソリューションに含まれる
Program.cs
ファイル全体に相当します。
例16-5
共有状態としてのローカルな値型変数
この例は
BadSharedLocalValues
ディレクトリ以下の
BadSharedLocalValues.sln
ソリューションに含まれる
Program.cs
ファイル全体に相当します。
例16-6
作業項目をスレッドプールの待ち行列(queue)に追加する
この例は
BadThreadPool
ディレクトリ以下の
BadThreadPool.sln
ソリューションに含まれる
Program.cs
ファイルの9行目以降に相当します。
例16-7
SynchronizationContext でスレッドアフィニティを処理する
この例は
Affinity
ディレクトリ以下の
Affinity.sln
ソリューションに含まれる
MainWindow.xaml.cs
ファイルの27行目以降に相当します。
例16-8
マルチスレッド 対 シングルスレッド
この例は
CpuUsageComparison
ディレクトリ以下の
CpuUsageComparison.sln
ソリューションに含まれる
Program.cs
ファイルの10行目以降に相当します。
例16-9
マルチスレッドにふさわしくないコード
この例は
Unsynchronized
ディレクトリ以下の
MonitorExamples.sln
ソリューションに含まれる
MostRecentlyUsed.cs
ファイルの6行目以降に相当します。
例16-10
MostRecentlyUsed クラスのテスト
この例は
Unsynchronized
ディレクトリ以下の
MonitorExamples.sln
ソリューションに含まれる
Program.cs
ファイルの11行目以降に相当します。
例16-11
マルチスレッド版のテスト
この例は
Unsynchronized
ディレクトリ以下の
MonitorExamples.sln
ソリューションに含まれる
Program.cs
ファイルの31行目以降に相当します。
例16-12
コード呼び出しにおける同期処理
この例は
CallerSynchronizes
ディレクトリ以下の
MonitorExamples.sln
ソリューションに含まれる
Program.cs
ファイルの13行目以降に相当します。
例16-13
ロックをクラスに追加する
この例は
ClassSynchronizes
ディレクトリ以下の
MonitorExamples.sln
ソリューションに含まれる
MostRecentlyUsed.cs
ファイルの6行目以降に相当します。
例16-14
Monitor によりスレッドを協調する
この例は
MonitorCoordination
ディレクトリ以下の
MonitorCoordination.sln
ソリューションに含まれる
WaitForIt.cs
ファイルの6行目以降に相当します。
例16-15
WaitForIt の使用
この例は
MonitorCoordination
ディレクトリ以下の
MonitorCoordination.sln
ソリューションに含まれる
Program.cs
ファイルの7行目以降に相当します。
例16-16
非同期プログラミングモデルの利用
この例は
AsyncProgrammingModel
ディレクトリ以下の
AsyncProgrammingModel.sln
ソリューションに含まれる
Program.cs
ファイルの7行目以降に相当します。
例16-17
タスクでコードを実行する
この例は
TaskExecuteCode
ディレクトリ以下の
TplExamples.sln
ソリューションに含まれる
Program.cs
ファイル全体に相当します。
例16-18
ラムダ式を使用してより多くの引数を渡す
この例は
TaskLambdaArgs
ディレクトリ以下の
TplExamples.sln
ソリューションに含まれる
Program.cs
ファイルの9行目以降に相当します。
例16-19
Task.WaitAll
この例は
TaskWaitAll
ディレクトリ以下の
TplExamples.sln
ソリューションに含まれる
Program.cs
ファイルの9行目以降に相当します。
例16-20
子を含むTask
この例は
TaskParentChild
ディレクトリ以下の
TplExamples.sln
ソリューションに含まれる
Program.cs
ファイルの9行目以降に相当します。
例16-21
UI スレッド上の継続
この例は
SchedulerContext
ディレクトリ以下の
SchedulerContext.sln
ソリューションに含まれる
MainWindow.xaml.cs
ファイルの18行目以降に相当します。
例16-22
APM 実装からのタスクの作成
この例は
TaskFromApm
ディレクトリ以下の
SchedulerContext.sln
ソリューションに含まれる
MainWindow.xaml.cs
ファイルの20行目以降に相当します。
例16-23
無駄なキャンセル
この例は
BadCancellation
ディレクトリ以下の
SchedulerContext.sln
ソリューションに含まれる
MainWindow.xaml.cs
ファイルの19行目以降に相当します。
例16-24
Parallel.For
この例は
ParallelFor
ディレクトリ以下の
ParallelFor.sln
ソリューションに含まれる
Program.cs
ファイルの12行目以降に相当します。