第1章 定义线程
1.1 线程的定义
1.1.1 多任务
1.1.2 进程
1.1.3 线程
1.2 Visual Basic.NET对线程的支持
1.2.1 System.AppDomain类
1.2.2 线程管理与.NET运行库
1.3 本章小结
第2章 .NET中的线程
2.1 System.Threading命名空间
2.1.1 Thread类
2.1.2 创建一个线程
2.1.3 ThreadStart委托和执行分支
2.1.4 线程的属性和方法
2.1.5 线程的优先级
2.1.6 计时器和回调
2.1.7 使用线程调节线程
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 再次访问的执行顺序
2.5.2 一个循环中的线程
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 同步代码区
3.3.3 手控同步
3.3.4 同步和性能
3.4 小心死锁
3.5 端到端的示例
3.5.1 编写自己的线程安全包装器
3.5.2 数据库连接池
3.6 本章小结
第4章 设计模式
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 VB.NET中的线程池编程
5.5 .NET中的可伸缩性
5.6 本章小结
第6章 调试与跟踪线程
6.1 创建应用程序代码
6.2 调试代码
6.2.1 Visual Studio.NET调试器
6.2.2 逐步执行代码
6.2.3 设置断点
6.2.4 调试线程
6.3 代码跟踪
6.3.1 System.Diagnostics.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章 联网与线程
7.1 在.NET中的联网
7.1.1 System.Net命名空间
7.1.2 System.Net.Sockets命名空间
7.2 创建范例应用程序
7.2.1 设计目标
7.2.2 构建应用程序
7.2.3 运行应用程序
7.3 本章小结
附录