当前位置:主页 > 书籍配套资源 > C#配套资源
《C#多线程编程实战》源代码

《C#多线程编程实战》源代码

  • 更新:2022-04-06
  • 大小:2.66 MB
  • 类别:C#
  • 作者:Eugene、Agafonov
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

封面图

目录

  • 前言
  • 第1章线程基础1
  • 1.1简介1
  • 1.2使用C#创建线程2
  • 1.2.1准备工作2
  • 1.2.2实现方式2
  • 1.2.3工作原理4
  • 1.3暂停线程4
  • 1.3.1准备工作5
  • 1.3.2实现方式5
  • 1.3.3工作原理5
  • 1.4线程等待6
  • 1.4.1准备工作6
  • 1.4.2实现方式6
  • 1.4.3工作原理7
  • 1.5终止线程7
  • 1.5.1准备工作7
  • 1.5.2实现方式7
  • 1.5.3工作原理8
  • 1.6检测线程状态8
  • 1.6.1准备工作8
  • 1.6.2实现方式8
  • 1.6.3工作原理9
  • 1.7线程优先级10
  • 1.7.1准备工作10
  • 1.7.2实现方式10
  • 1.7.3工作原理11
  • 1.8前台线程和后台线程12
  • 1.8.1准备工作12
  • 1.8.2实现方式12
  • 1.8.3工作原理13
  • 1.9向线程传递参数13
  • 1.9.1准备工作13
  • 1.9.2实现方式13
  • 1.9.3工作原理15
  • 1.9.4更多信息15
  • 1.10使用C#中的lock关键字16
  • 1.10.1准备工作16
  • 1.10.2实现方式16
  • 1.10.3工作原理18
  • 1.11使用Monitor类锁定资源18
  • 1.11.1准备工作18
  • 1.11.2实现方式18
  • 1.11.3工作原理20
  • 1.12处理异常20
  • 1.12.1准备工作20
  • 1.12.2实现方式21
  • 1.12.3工作原理22
  • 第2章线程同步23
  • 2.1简介23
  • 2.2执行基本的原子操作24
  • 2.2.1准备工作24
  • 2.2.2实现方式24
  • 2.2.3工作原理26
  • 2.3使用Mutex类27
  • 2.3.1准备工作27
  • 2.3.2实现方式27
  • 2.3.3工作原理27
  • 2.4使用SemaphoreSlim类28
  • 2.4.1准备工作28
  • 2.4.2实现方式28
  • 2.4.3工作原理29
  • 2.4.4更多信息29
  • 2.5使用AutoResetEvent类29
  • 2.5.1准备工作30
  • 2.5.2实现方式30
  • 2.5.3工作原理31
  • 2.6使用ManualResetEventSlim类31
  • 2.6.1准备工作31
  • 2.6.2实现方式31
  • 2.6.3工作原理32
  • 2.6.4更多信息33
  • 2.7使用CountDownEvent类33
  • 2.7.1准备工作33
  • 2.7.2实现方式33
  • 2.7.3工作原理34
  • 2.8使用Barrier类34
  • 2.8.1准备工作34
  • 2.8.2实现方式34
  • 2.8.3工作原理35
  • 2.9使用ReaderWriterLockSlim类35
  • 2.9.1准备工作36
  • 2.9.2实现方式36
  • 2.9.3工作原理37
  • 2.10使用SpinWait类38
  • 2.10.1准备工作38
  • 2.10.2实现方式38
  • 2.10.3工作原理39
  • 第3章使用线程池40
  • 3.1简介40
  • 3.2在线程池中调用委托41
  • 3.2.1准备工作42
  • 3.2.2实现方式42
  • 3.2.3工作原理43
  • 3.3向线程池中放入异步操作44
  • 3.3.1准备工作44
  • 3.3.2实现方式44
  • 3.3.3工作原理45
  • 3.4线程池与并行度45
  • 3.4.1准备工作46
  • 3.4.2实现方式46
  • 3.4.3工作原理47
  • 3.5实现一个取消选项47
  • 3.5.1准备工作47
  • 3.5.2实现方式48
  • 3.5.3工作原理49
  • 3.6在线程池中使用等待事件处理器及超时50
  • 3.6.1准备工作50
  • 3.6.2实现方式50
  • 3.6.3工作原理51
  • 3.6.4更多信息51
  • 3.7使用计时器52
  • 3.7.1准备工作52
  • 3.7.2实现方式52
  • 3.7.3工作原理53
  • 3.8使用BackgroundWorker组件53
  • 3.8.1准备工作53
  • 3.8.2实现方式53
  • 3.8.3工作原理55
  • 第4章使用任务并行库56
  • 4.1简介56
  • 4.2创建任务57
  • 4.2.1准备工作58
  • 4.2.2实现方式58
  • 4.2.3工作原理59
  • 4.3使用任务执行基本的操作59
  • 4.3.1准备工作60
  • 4.3.2实现方式60
  • 4.3.3工作原理61
  • 4.4组合任务61
  • 4.4.1准备工作61
  • 4.4.2实现方式61
  • 4.4.3工作原理63
  • 4.5将APM模式转换为任务63
  • 4.5.1准备工作64
  • 4.5.2实现方式64
  • 4.5.3工作原理66
  • 4.6将EAP模式转换为任务66
  • 4.6.1准备工作66
  • 4.6.2实现方式67
  • 4.6.3工作原理68
  • 4.7实现取消选项68
  • 4.7.1准备工作68
  • 4.7.2实现方式68
  • 4.7.3工作原理69
  • 4.8处理任务中的异常69
  • 4.8.1准备工作70
  • 4.8.2实现方式70
  • 4.8.3工作原理71
  • 4.8.4更多信息71
  • 4.9并行运行任务72
  • 4.9.1准备工作72
  • 4.9.2实现方式72
  • 4.9.3工作原理73
  • 4.10使用TaskScheduler配置任务的执行73
  • 4.10.1准备工作73
  • 4.10.2实现方式74
  • 4.10.3工作原理76
  • 第5章使用C# 5.078
  • 5.1简介78
  • 5.2使用await操作符获取异步任务结果80
  • 5.2.1准备工作80
  • 5.2.2实现方式80
  • 5.2.3工作原理81
  • 5.3在lambda表达式中使用await操作符82
  • 5.3.1准备工作82
  • 5.3.2实现方式82
  • 5.3.3工作原理83
  • 5.4对连续的异步任务使用await操作符83
  • 5.4.1准备工作84
  • 5.4.2实现方式84
  • 5.4.3工作原理85
  • 5.5对并行执行的异步任务使用await操作符86
  • 5.5.1准备工作86
  • 5.5.2实现方式86
  • 5.5.3工作原理87
  • 5.6处理异步操作中的异常88
  • 5.6.1准备工作88
  • 5.6.2实现方式88
  • 5.6.3工作原理89
  • 5.7避免使用捕获的同步上下文90
  • 5.7.1准备工作90
  • 5.7.2实现方式90
  • 5.7.3工作原理92
  • 5.8使用async void方法93
  • 5.8.1准备工作93
  • 5.8.2实现方式93
  • 5.8.3工作原理95
  • 5.9设计一个自定义的awaitable类型96
  • 5.9.1准备工作96
  • 5.9.2实现方式96
  • 5.9.3工作原理97
  • 5.10对动态类型使用await98
  • 5.10.1准备工作99
  • 5.10.2实现方式99
  • 5.10.3工作原理101
  • 第6章使用并发集合102
  • 6.1简介102
  • 6.2使用ConcurrentDictionary103
  • 6.2.1准备工作104
  • 6.2.2实现方式104
  • 6.2.3工作原理105
  • 6.3使用ConcurrentQueue实现异步处理105
  • 6.3.1准备工作106
  • 6.3.2实现方式106
  • 6.3.3工作原理107
  • 6.4改变ConcurrentStack异步处理顺序108
  • 6.4.1准备工作108
  • 6.4.2实现方式108
  • 6.4.3工作原理109
  • 6.5使用ConcurrentBag创建一个可扩展的爬虫110
  • 6.5.1准备工作110
  • 6.5.2实现方式110
  • 6.5.3工作原理113
  • 6.6使用BlockingCollection进行异步处理113
  • 6.6.1准备工作113
  • 6.6.2实现方式113
  • 6.6.3工作原理115
  • 第7章使用PLINQ116
  • 7.1简介116
  • 7.2使用Parallel类117
  • 7.2.1准备工作118
  • 7.2.2实现方式118
  • 7.2.3工作原理119
  • 7.3并行化LINQ查询119
  • 7.3.1准备工作119
  • 7.3.2实现方式120
  • 7.3.3工作原理122
  • 7.4调整PLINQ查询的参数122
  • 7.4.1准备工作122
  • 7.4.2实现方式123
  • 7.4.3工作原理124
  • 7.5处理PLINQ查询中的异常125
  • 7.5.1准备工作125
  • 7.5.2实现方式125
  • 7.5.3工作原理126
  • 7.6管理PLINQ查询中的数据分区126
  • 7.6.1准备工作127
  • 7.6.2实现方式127
  • 7.6.3工作原理128
  • 7.7为PLINQ查询创建一个自定义的聚合器129
  • 7.7.1准备工作129
  • 7.7.2实现方式129
  • 7.7.3工作原理131
  • 第8章使用Reactive Extensions132
  • 8.1简介132
  • 8.2将普通集合转换为异步的可观察集合133
  • 8.2.1准备工作133
  • 8.2.2实现方式133
  • 8.2.3工作原理135
  • 8.3编写自定义的可观察对象136
  • 8.3.1准备工作136
  • 8.3.2实现方式136
  • 8.3.3工作原理138
  • 8.4使用Subject138
  • 8.4.1准备工作138
  • 8.4.2实现方式138
  • 8.4.3工作原理140
  • 8.5创建可观察的对象141
  • 8.5.1准备工作141
  • 8.5.2实现方式141
  • 8.5.3工作原理143
  • 8.6对可观察的集合使用LINQ查询144
  • 8.6.1准备工作144
  • 8.6.2实现方式144
  • 8.6.3工作原理145
  • 8.7使用Rx创建异步操作146
  • 8.7.1准备工作146
  • 8.7.2实现方式146
  • 8.7.3工作原理148
  • 第9章使用异步I/O150
  • 9.1简介150
  • 9.2异步地使用文件152
  • 9.2.1准备工作152
  • 9.2.2实现方式152
  • 9.2.3工作原理154
  • 9.3编写一个异步的HTTP服务器和客户端155
  • 9.3.1准备工作155
  • 9.3.2实现方式155
  • 9.3.3工作原理157
  • 9.4异步操作数据库157
  • 9.4.1准备工作157
  • 9.4.2实现方式158
  • 9.4.3工作原理160
  • 9.5异步调用WCF服务161
  • 9.5.1准备工作161
  • 9.5.2实现方式161
  • 9.5.3工作原理164
  • 第10章并行编程模式165
  • 10.1简介165
  • 10.2实现惰性求值的共享状态166
  • 10.2.1准备工作166
  • 10.2.2实现方式166
  • 10.2.3工作原理169
  • 10.3使用BlockingCollection实现并行管道170
  • 10.3.1准备工作170
  • 10.3.2实现方式170
  • 10.3.3工作原理174
  • 10.4使用TPL数据流实现并行管道175
  • 10.4.1准备工作175
  • 10.4.2实现方式175
  • 10.4.3工作原理177
  • 10.5使用PLINQ实现Map/Reduce模式178
  • 10.5.1准备工作178
  • 10.5.2实现方式178
  • 10.5.3工作原理181
  • 第11章更多信息183
  • 11.1简介183
  • 11.2在Windows商店应用中使用计时器184
  • 11.2.1准备工作184
  • 11.2.2实现方式184
  • 11.2.3工作原理188
  • 11.3在通常的应用程序中使用WinRT189
  • 11.3.1准备工作189
  • 11.3.2实现方式189
  • 11.3.3工作原理191
  • 11.4在Windows商店应用中使用BackgroundTask192
  • 11.4.1准备工作192
  • 11.4.2实现方式192
  • 11.4.3工作原理197

资源下载

资源下载地址1:https://pan.baidu.com/s/1_9AboSkCoTad5eSA06N91w

相关资源

网友留言