例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行目以降に相当します。