第1章 定義線程
1.1 線程的定義
1.1.1 多任務
1.1.2 進程
1.1.3 線程
1.2 .NET和C#對線程的支持
1.2.1 System.Appdomain類
1.2.2 線程管理與.NET運行庫
1.3 本章小結
第2章 .NET中的線程
2.1 System.Threading命名空間
2.1.1 Thread類
2.1.2 創(chuàng)建線程
2.1.3 ThreadStart委托和執(zhí)行分支
2.1.4 線程的屬性和方法
2.1.5 線程的優(yōu)先級
2.1.6 計時器和回調
2.1.7 使用線程調節(jié)線程
2.2 線程的生存期
2.2.1 使線程睡眠
2.2.2 中斷線程
2.2.3 暫停及恢復線程
2.2.4 銷毀線程
2.2.5 連接線程
2.3 為什么線程不是萬能的
2.4 使用線程的時機
2.4.1 后臺進程
2.4.2 訪問外部資源
2.5 線程的陷阱
2.5.1 再次訪問的執(zhí)行順序
2.5.2 循環(huán)中的線程
2.6 本章小結
第3章 使用線程
3.1 為何要同步
3.1.1 同步重要的代碼段
3.1.2 使賬戶對象不可改變
3.1.3 使用線程安全包裝器
3.2 .NET對同步的支持
3.3 .NET同步策略
3.3.1 同步上下文
3.3.2 同步代碼區(qū)
3.3.3 手控同步
3.3.4 同步和性能
3.4 小心死鎖
3.5 端到端的示例
3.5.1 編寫自己的線程安全包裝器
3.5.2 數(shù)據(jù)庫連接池
3.6 本章小結
第4章 線程設計規(guī)則
4.1 應用程序中的多線程
4.2 STA線程模式
4.3 MTA線程模式
4.3.1 指定線程模式
4.3.2 設計線程應用程序
4.3.3 線程和關系
4.4 本章小結
第5章 線程應用程序的伸縮
5.1 什么是線程池管理
5.1.1 需要線程池的原因
5.1.2 線程池的概念
5.2 CLR和線程
5.2.1 CLR在線程池管理中的作用
5.2.2 線程池管理中的問題
5.2.3 線程池的大小
5.3 ThreadPool類
5.4 C#中的線程池編程
5.5 .NET中的可伸縮性
5.6 本章小結
第6章 調試與跟蹤線程
6.1 創(chuàng)建應用程序代碼
6.2 調試代碼
6.2.1 Visual Studio.NET調試器
6.2.2 單步執(zhí)行代碼
6.2.3 設置斷點
6.2.4 調試線程
6.3 代碼的跟蹤
6.3.1 Trace類
6.3.2 使用不同的偵聽器應用程序
6.3.3 跟蹤選項
6.3.4 Debug類
6.4 DataImport示例
6.4.1 代碼
6.4.2 測試應用程序
6.4.3 邏輯錯誤
6.5 本章小結
第7章 聯(lián)網與線程
7.1 .NET中的聯(lián)網
7.1.1 System.Net命名空間
7.1.2 System.Net.Sockets命名空間
7.2 創(chuàng)建示例應用程序
7.2.1 設計目標
7.2.2 構建應用程序
7.2.3 運行應用程序
7.3 本章小結
附錄A 支持. 勘誤表與代碼下載