C#多线程编程实战

C#多线程编程实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] , ,
2015-03
版次: 1
ISBN: 9787111493488
定价: 49.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 197页
  •   2005年,英特尔推出了其首款多核心CPU,从此计算机开始向不同的方向发展。低耗电量及多个计算核心变得比提高行计算(rowcomputing)核心性能更重要。这也导致了编程范式的改变。现在我们需要学习如何有效地使用所有CPU核心来优化性能。我们在编写服务器端应用程序时需要有效地利用多个CPU核心,甚至多台计算机来支持尽可能多的用户。为了创建这样的应用程序,你需要学习如何在程序中有效地使用多个CPU核心。如果你使用的是Microsoft.NET开发平台以及C#编程语言,那么本书将是一个编写高性能、高响应性的应用程序的完美起点。
      《C#多线程编程实战》共分为11章,第1章介绍C#中基本的线程操作;第2章描述线程交互细节;第3章解释线程池概念;第4章深入讲解任务并行库框架;第5章深入解释C#5.0中的新功能——异步方法;第6章描述.NET框架中并行算法的标准数据结构;第7章深入讲解并行LINQ基础设施;第8章解释如何以及何时使用ReactiveExtensions框架;第9章深入讲解异步I/O进程,包括文件、网络及数据库等场景;第10章针对常见的并行编程问题给出一些解决方案;第11章讲述编写基于Windows8的异步应用程序的场景。
      EugeneAgafonov,ABBYY公司Web开发部门主管,有超过15年的专业软件开发经验。从2006年到现在一直是ASP.NET方面的微软最有价值专家,并且经常在当地的软件开发大会上发表演讲。他主要的专业兴趣是基于云的软件架构、可伸缩性和可用性的研究。你可以通过他的个人网站eugeneagafonov.com或twitter账号@eugene_agafonov来联系他。

      黄博文,ThoughtWorks高级软件工程师,擅长.Net、Java和JavaScript等编程语言。他拥有AWS解决方案架构师认证,在项目管理中尤其是敏捷实施方面有丰富的经验,目前专注于云计算及DevOps相关技术。译作有《EffectiveJavaScript》、《HTML5和CSS3响应式Web设计指南》等。他的个人博客为www.huangbowen.net。
    前言
    第1章 线程基础
    1.1 简介
    1.2 使用C#创建线程
    1.2.1 准备工作
    1.2.2 实现方式
    1.2.3 工作原理
    1.3 暂停线程
    1.3.1 准备工作
    1.3.2 实现方式
    1.3.3 工作原理
    1.4 线程等待
    1.4.1 准备工作
    1.4.2 实现方式
    1.4.3 工作原理
    1.5 终止线程
    1.5.1 准备工作
    1.5.2 实现方式
    1.5.3 工作原理
    1.6 检测线程状态
    1.6.1 准备工作
    1.6.2 实现方式
    1.6.3 工作原理
    1.7 线程优先级
    1.7.1 准备工作
    1.7.2 实现方式
    1.7.3 工作原理
    1.8 前台线程和后台线程
    1.8.1 准备工作
    1.8.2 实现方式
    1.8.3 工作原理
    1.9 向线程传递参数
    1.9.1 准备工作
    1.9.2 实现方式
    1.9.3 工作原理
    1.9.4 更多信息
    1.10 使用C#中的lock关键字
    1.10.1 准备工作
    1.10.2 实现方式
    1.10.3 工作原理
    1.11 使用Monitor类锁定资源
    1.11.1 准备工作
    1.11.2 实现方式
    1.11.3 工作原理
    1.12 处理异常
    1.12.1 准备工作
    1.12.2 实现方式
    1.12.3 工作原理
    第2章 线程同步
    2.1 简介
    2.2 执行基本的原子操作
    2.2.1 准备工作
    2.2.2 实现方式
    2.2.3 工作原理
    2.3 使用Mutex类
    2.3.1 准备工作
    2.3.2 实现方式
    2.3.3 工作原理
    2.4 使用SemaphoreSlim类
    2.4.1 准备工作
    2.4.2 实现方式
    2.4.3 工作原理
    2.4.4 更多信息
    2.5 使用AutoResetEvent类
    2.5.1 准备工作
    2.5.2 实现方式
    2.5.3 工作原理
    2.6 使用ManualResetEventSlim类
    2.6.1 准备工作
    2.6.2 实现方式
    2.6.3 工作原理
    2.6.4 更多信息
    2.7 使用CountDownEvent类
    2.7.1 准备工作
    2.7.2 实现方式
    2.7.3 工作原理
    2.8 使用Barrier类
    2.8.1 准备工作
    2.8.2 实现方式
    2.8.3 工作原理
    2.9 使用ReaderWriterLockSlim类
    2.9.1 准备工作
    2.9.2 实现方式
    2.9.3 工作原理
    2.10 使用SpinWait类
    2.10.1 准备工作
    2.10.2 实现方式
    2.10.3 工作原理
    第3章 使用线程池
    3.1 简介
    3.2 在线程池中调用委托
    3.2.1 准备工作
    3.2.2 实现方式
    3.2.3 工作原理
    3.3 向线程池中放入异步操作
    3.3.1 准备工作
    3.3.2 实现方式
    3.3.3 工作原理
    3.4 线程池与并行度
    3.4.1 准备工作
    3.4.2 实现方式
    3.4.3 工作原理
    3.5 实现一个取消选项
    3.5.1 准备工作
    3.5.2 实现方式
    3.5.3 工作原理
    3.6 在线程池中使用等待事件处理器及超时
    3.6.1 准备工作
    3.6.2 实现方式
    3.6.3 工作原理
    3.6.4 更多信息
    3.7 使用计时器
    3.7.1 准备工作
    3.7.2 实现方式
    3.7.3 工作原理
    3.8 使用BackgroundWorker组件
    3.8.1 准备工作
    3.8.2 实现方式
    3.8.3 工作原理
    第4章 使用任务并行库
    4.1 简介
    4.2 创建任务
    4.2.1 准备工作
    4.2.2 实现方式
    4.2.3 工作原理
    4.3 使用任务执行基本的操作
    4.3.1 准备工作
    4.3.2 实现方式
    4.3.3 工作原理
    4.4 组合任务
    4.4.1 准备工作
    4.4.2 实现方式
    4.4.3 工作原理
    4.5 将APM模式转换为任务
    4.5.1 准备工作
    4.5.2 实现方式
    4.5.3 工作原理
    4.6 将EAP模式转换为任务
    4.6.1 准备工作
    4.6.2 实现方式
    4.6.3 工作原理
    4.7 实现取消选项
    4.7.1 准备工作
    4.7.2 实现方式
    4.7.3 工作原理
    4.8 处理任务中的异常
    4.8.1 准备工作
    4.8.2 实现方式
    4.8.3 工作原理
    4.8.4 更多信息
    4.9 并行运行任务
    4.9.1 准备工作
    4.9.2 实现方式
    4.9.3 工作原理
    4.10 使用TaskScheduler配置任务的执行
    4.10.1 准备工作
    4.10.2 实现方式
    4.10.3 工作原理
    第5章 使用C# 5.0
    5.1 简介
    5.2 使用await操作符获取异步任务结果
    5.2.1 准备工作
    5.2.2 实现方式
    5.2.3 工作原理
    5.3 在lambda表达式中使用await操作符
    5.3.1 准备工作
    5.3.2 实现方式
    5.3.3 工作原理
    5.4 对连续的异步任务使用await操作符
    5.4.1 准备工作
    5.4.2 实现方式
    5.4.3 工作原理
    5.5 对并行执行的异步任务使用await操作符
    5.5.1 准备工作
    5.5.2 实现方式
    5.5.3 工作原理
    5.6 处理异步操作中的异常
    5.6.1 准备工作
    5.6.2 实现方式
    5.6.3 工作原理
    5.7 避免使用捕获的同步上下文
    5.7.1 准备工作
    5.7.2 实现方式
    5.7.3 工作原理
    5.8 使用async void方法
    5.8.1 准备工作
    5.8.2 实现方式
    5.8.3 工作原理
    5.9 设计一个自定义的awaitable类型
    5.9.1 准备工作
    5.9.2 实现方式
    5.9.3 工作原理
    5.10 对动态类型使用await
    5.10.1 准备工作
    5.10.2 实现方式
    5.10.3 工作原理
    第6章 使用并发集合
    6.1 简介
    6.2 使用ConcurrentDictionary
    6.2.1 准备工作
    6.2.2 实现方式
    6.2.3 工作原理
    6.3 使用ConcurrentQueue实现异步处理
    6.3.1 准备工作
    6.3.2 实现方式
    6.3.3 工作原理
    6.4 改变ConcurrentStack异步处理顺序
    6.4.1 准备工作
    6.4.2 实现方式
    6.4.3 工作原理
    6.5 使用ConcurrentBag创建一个可扩展的爬虫
    6.5.1 准备工作
    6.5.2 实现方式
    6.5.3 工作原理
    6.6 使用BlockingCollection进行异步处理
    6.6.1 准备工作
    6.6.2 实现方式
    6.6.3 工作原理
    第7章 使用PLINQ
    7.1 简介
    7.2 使用Parallel类
    7.2.1 准备工作
    7.2.2 实现方式
    7.2.3 工作原理
    7.3 并行化LINQ查询
    7.3.1 准备工作
    7.3.2 实现方式
    7.3.3 工作原理
    7.4 调整PLINQ查询的参数
    7.4.1 准备工作
    7.4.2 实现方式
    7.4.3 工作原理
    7.5 处理PLINQ查询中的异常
    7.5.1 准备工作
    7.5.2 实现方式
    7.5.3 工作原理
    7.6 管理PLINQ查询中的数据分区
    7.6.1 准备工作
    7.6.2 实现方式
    7.6.3 工作原理
    7.7 为PLINQ查询创建一个自定义的聚合器
    7.7.1 准备工作
    7.7.2 实现方式
    7.7.3 工作原理
    第8章 使用Reactive Extensions
    8.1 简介
    8.2 将普通集合转换为异步的可观察集合
    8.2.1 准备工作
    8.2.2 实现方式
    8.2.3 工作原理
    8.3 编写自定义的可观察对象
    8.3.1 准备工作
    8.3.2 实现方式
    8.3.3 工作原理
    8.4 使用Subject
    8.4.1 准备工作
    8.4.2 实现方式
    8.4.3 工作原理
    8.5 创建可观察的对象
    8.5.1 准备工作
    8.5.2 实现方式
    8.5.3 工作原理
    8.6 对可观察的集合使用LINQ查询
    8.6.1 准备工作
    8.6.2 实现方式
    8.6.3 工作原理
    8.7 使用Rx创建异步操作
    8.7.1 准备工作
    8.7.2 实现方式
    8.7.3 工作原理
    第9章 使用异步I/O
    9.1 简介
    9.2 异步地使用文件
    9.2.1 准备工作
    9.2.2 实现方式
    9.2.3 工作原理
    9.3 编写一个异步的HTTP服务器和客户端
    9.3.1 准备工作
    9.3.2 实现方式
    9.3.3 工作原理
    9.4 异步操作数据库
    9.4.1 准备工作
    9.4.2 实现方式
    9.4.3 工作原理
    9.5 异步调用WCF服务
    9.5.1 准备工作
    9.5.2 实现方式
    9.5.3 工作原理
    第10章 并行编程模式
    10.1 简介
    10.2 实现惰性求值的共享状态
    10.2.1 准备工作
    10.2.2 实现方式
    10.2.3 工作原理
    10.3 使用BlockingCollection实现并行管道
    10.3.1 准备工作
    10.3.2 实现方式
    10.3.3 工作原理
    10.4 使用TPL数据流实现并行管道
    10.4.1 准备工作
    10.4.2 实现方式
    10.4.3 工作原理
    10.5 使用PLINQ实现Map/Reduce模式
    10.5.1 准备工作
    10.5.2 实现方式
    10.5.3 工作原理
    第11章 更多信息
    11.1 简介
    11.2 在Windows商店应用中使用计时器
    11.2.1 准备工作
    11.2.2 实现方式
    11.2.3 工作原理
    11.3 在通常的应用程序中使用WinRT
    11.3.1 准备工作
    11.3.2 实现方式
    11.3.3 工作原理
    11.4 在Windows商店应用中使用BackgroundTask
    11.4.1 准备工作
    11.4.2 实现方式
    11.4.3 工作原理

  • 内容简介:
      2005年,英特尔推出了其首款多核心CPU,从此计算机开始向不同的方向发展。低耗电量及多个计算核心变得比提高行计算(rowcomputing)核心性能更重要。这也导致了编程范式的改变。现在我们需要学习如何有效地使用所有CPU核心来优化性能。我们在编写服务器端应用程序时需要有效地利用多个CPU核心,甚至多台计算机来支持尽可能多的用户。为了创建这样的应用程序,你需要学习如何在程序中有效地使用多个CPU核心。如果你使用的是Microsoft.NET开发平台以及C#编程语言,那么本书将是一个编写高性能、高响应性的应用程序的完美起点。
      《C#多线程编程实战》共分为11章,第1章介绍C#中基本的线程操作;第2章描述线程交互细节;第3章解释线程池概念;第4章深入讲解任务并行库框架;第5章深入解释C#5.0中的新功能——异步方法;第6章描述.NET框架中并行算法的标准数据结构;第7章深入讲解并行LINQ基础设施;第8章解释如何以及何时使用ReactiveExtensions框架;第9章深入讲解异步I/O进程,包括文件、网络及数据库等场景;第10章针对常见的并行编程问题给出一些解决方案;第11章讲述编写基于Windows8的异步应用程序的场景。
  • 作者简介:
      EugeneAgafonov,ABBYY公司Web开发部门主管,有超过15年的专业软件开发经验。从2006年到现在一直是ASP.NET方面的微软最有价值专家,并且经常在当地的软件开发大会上发表演讲。他主要的专业兴趣是基于云的软件架构、可伸缩性和可用性的研究。你可以通过他的个人网站eugeneagafonov.com或twitter账号@eugene_agafonov来联系他。

      黄博文,ThoughtWorks高级软件工程师,擅长.Net、Java和JavaScript等编程语言。他拥有AWS解决方案架构师认证,在项目管理中尤其是敏捷实施方面有丰富的经验,目前专注于云计算及DevOps相关技术。译作有《EffectiveJavaScript》、《HTML5和CSS3响应式Web设计指南》等。他的个人博客为www.huangbowen.net。
  • 目录:
    前言
    第1章 线程基础
    1.1 简介
    1.2 使用C#创建线程
    1.2.1 准备工作
    1.2.2 实现方式
    1.2.3 工作原理
    1.3 暂停线程
    1.3.1 准备工作
    1.3.2 实现方式
    1.3.3 工作原理
    1.4 线程等待
    1.4.1 准备工作
    1.4.2 实现方式
    1.4.3 工作原理
    1.5 终止线程
    1.5.1 准备工作
    1.5.2 实现方式
    1.5.3 工作原理
    1.6 检测线程状态
    1.6.1 准备工作
    1.6.2 实现方式
    1.6.3 工作原理
    1.7 线程优先级
    1.7.1 准备工作
    1.7.2 实现方式
    1.7.3 工作原理
    1.8 前台线程和后台线程
    1.8.1 准备工作
    1.8.2 实现方式
    1.8.3 工作原理
    1.9 向线程传递参数
    1.9.1 准备工作
    1.9.2 实现方式
    1.9.3 工作原理
    1.9.4 更多信息
    1.10 使用C#中的lock关键字
    1.10.1 准备工作
    1.10.2 实现方式
    1.10.3 工作原理
    1.11 使用Monitor类锁定资源
    1.11.1 准备工作
    1.11.2 实现方式
    1.11.3 工作原理
    1.12 处理异常
    1.12.1 准备工作
    1.12.2 实现方式
    1.12.3 工作原理
    第2章 线程同步
    2.1 简介
    2.2 执行基本的原子操作
    2.2.1 准备工作
    2.2.2 实现方式
    2.2.3 工作原理
    2.3 使用Mutex类
    2.3.1 准备工作
    2.3.2 实现方式
    2.3.3 工作原理
    2.4 使用SemaphoreSlim类
    2.4.1 准备工作
    2.4.2 实现方式
    2.4.3 工作原理
    2.4.4 更多信息
    2.5 使用AutoResetEvent类
    2.5.1 准备工作
    2.5.2 实现方式
    2.5.3 工作原理
    2.6 使用ManualResetEventSlim类
    2.6.1 准备工作
    2.6.2 实现方式
    2.6.3 工作原理
    2.6.4 更多信息
    2.7 使用CountDownEvent类
    2.7.1 准备工作
    2.7.2 实现方式
    2.7.3 工作原理
    2.8 使用Barrier类
    2.8.1 准备工作
    2.8.2 实现方式
    2.8.3 工作原理
    2.9 使用ReaderWriterLockSlim类
    2.9.1 准备工作
    2.9.2 实现方式
    2.9.3 工作原理
    2.10 使用SpinWait类
    2.10.1 准备工作
    2.10.2 实现方式
    2.10.3 工作原理
    第3章 使用线程池
    3.1 简介
    3.2 在线程池中调用委托
    3.2.1 准备工作
    3.2.2 实现方式
    3.2.3 工作原理
    3.3 向线程池中放入异步操作
    3.3.1 准备工作
    3.3.2 实现方式
    3.3.3 工作原理
    3.4 线程池与并行度
    3.4.1 准备工作
    3.4.2 实现方式
    3.4.3 工作原理
    3.5 实现一个取消选项
    3.5.1 准备工作
    3.5.2 实现方式
    3.5.3 工作原理
    3.6 在线程池中使用等待事件处理器及超时
    3.6.1 准备工作
    3.6.2 实现方式
    3.6.3 工作原理
    3.6.4 更多信息
    3.7 使用计时器
    3.7.1 准备工作
    3.7.2 实现方式
    3.7.3 工作原理
    3.8 使用BackgroundWorker组件
    3.8.1 准备工作
    3.8.2 实现方式
    3.8.3 工作原理
    第4章 使用任务并行库
    4.1 简介
    4.2 创建任务
    4.2.1 准备工作
    4.2.2 实现方式
    4.2.3 工作原理
    4.3 使用任务执行基本的操作
    4.3.1 准备工作
    4.3.2 实现方式
    4.3.3 工作原理
    4.4 组合任务
    4.4.1 准备工作
    4.4.2 实现方式
    4.4.3 工作原理
    4.5 将APM模式转换为任务
    4.5.1 准备工作
    4.5.2 实现方式
    4.5.3 工作原理
    4.6 将EAP模式转换为任务
    4.6.1 准备工作
    4.6.2 实现方式
    4.6.3 工作原理
    4.7 实现取消选项
    4.7.1 准备工作
    4.7.2 实现方式
    4.7.3 工作原理
    4.8 处理任务中的异常
    4.8.1 准备工作
    4.8.2 实现方式
    4.8.3 工作原理
    4.8.4 更多信息
    4.9 并行运行任务
    4.9.1 准备工作
    4.9.2 实现方式
    4.9.3 工作原理
    4.10 使用TaskScheduler配置任务的执行
    4.10.1 准备工作
    4.10.2 实现方式
    4.10.3 工作原理
    第5章 使用C# 5.0
    5.1 简介
    5.2 使用await操作符获取异步任务结果
    5.2.1 准备工作
    5.2.2 实现方式
    5.2.3 工作原理
    5.3 在lambda表达式中使用await操作符
    5.3.1 准备工作
    5.3.2 实现方式
    5.3.3 工作原理
    5.4 对连续的异步任务使用await操作符
    5.4.1 准备工作
    5.4.2 实现方式
    5.4.3 工作原理
    5.5 对并行执行的异步任务使用await操作符
    5.5.1 准备工作
    5.5.2 实现方式
    5.5.3 工作原理
    5.6 处理异步操作中的异常
    5.6.1 准备工作
    5.6.2 实现方式
    5.6.3 工作原理
    5.7 避免使用捕获的同步上下文
    5.7.1 准备工作
    5.7.2 实现方式
    5.7.3 工作原理
    5.8 使用async void方法
    5.8.1 准备工作
    5.8.2 实现方式
    5.8.3 工作原理
    5.9 设计一个自定义的awaitable类型
    5.9.1 准备工作
    5.9.2 实现方式
    5.9.3 工作原理
    5.10 对动态类型使用await
    5.10.1 准备工作
    5.10.2 实现方式
    5.10.3 工作原理
    第6章 使用并发集合
    6.1 简介
    6.2 使用ConcurrentDictionary
    6.2.1 准备工作
    6.2.2 实现方式
    6.2.3 工作原理
    6.3 使用ConcurrentQueue实现异步处理
    6.3.1 准备工作
    6.3.2 实现方式
    6.3.3 工作原理
    6.4 改变ConcurrentStack异步处理顺序
    6.4.1 准备工作
    6.4.2 实现方式
    6.4.3 工作原理
    6.5 使用ConcurrentBag创建一个可扩展的爬虫
    6.5.1 准备工作
    6.5.2 实现方式
    6.5.3 工作原理
    6.6 使用BlockingCollection进行异步处理
    6.6.1 准备工作
    6.6.2 实现方式
    6.6.3 工作原理
    第7章 使用PLINQ
    7.1 简介
    7.2 使用Parallel类
    7.2.1 准备工作
    7.2.2 实现方式
    7.2.3 工作原理
    7.3 并行化LINQ查询
    7.3.1 准备工作
    7.3.2 实现方式
    7.3.3 工作原理
    7.4 调整PLINQ查询的参数
    7.4.1 准备工作
    7.4.2 实现方式
    7.4.3 工作原理
    7.5 处理PLINQ查询中的异常
    7.5.1 准备工作
    7.5.2 实现方式
    7.5.3 工作原理
    7.6 管理PLINQ查询中的数据分区
    7.6.1 准备工作
    7.6.2 实现方式
    7.6.3 工作原理
    7.7 为PLINQ查询创建一个自定义的聚合器
    7.7.1 准备工作
    7.7.2 实现方式
    7.7.3 工作原理
    第8章 使用Reactive Extensions
    8.1 简介
    8.2 将普通集合转换为异步的可观察集合
    8.2.1 准备工作
    8.2.2 实现方式
    8.2.3 工作原理
    8.3 编写自定义的可观察对象
    8.3.1 准备工作
    8.3.2 实现方式
    8.3.3 工作原理
    8.4 使用Subject
    8.4.1 准备工作
    8.4.2 实现方式
    8.4.3 工作原理
    8.5 创建可观察的对象
    8.5.1 准备工作
    8.5.2 实现方式
    8.5.3 工作原理
    8.6 对可观察的集合使用LINQ查询
    8.6.1 准备工作
    8.6.2 实现方式
    8.6.3 工作原理
    8.7 使用Rx创建异步操作
    8.7.1 准备工作
    8.7.2 实现方式
    8.7.3 工作原理
    第9章 使用异步I/O
    9.1 简介
    9.2 异步地使用文件
    9.2.1 准备工作
    9.2.2 实现方式
    9.2.3 工作原理
    9.3 编写一个异步的HTTP服务器和客户端
    9.3.1 准备工作
    9.3.2 实现方式
    9.3.3 工作原理
    9.4 异步操作数据库
    9.4.1 准备工作
    9.4.2 实现方式
    9.4.3 工作原理
    9.5 异步调用WCF服务
    9.5.1 准备工作
    9.5.2 实现方式
    9.5.3 工作原理
    第10章 并行编程模式
    10.1 简介
    10.2 实现惰性求值的共享状态
    10.2.1 准备工作
    10.2.2 实现方式
    10.2.3 工作原理
    10.3 使用BlockingCollection实现并行管道
    10.3.1 准备工作
    10.3.2 实现方式
    10.3.3 工作原理
    10.4 使用TPL数据流实现并行管道
    10.4.1 准备工作
    10.4.2 实现方式
    10.4.3 工作原理
    10.5 使用PLINQ实现Map/Reduce模式
    10.5.1 准备工作
    10.5.2 实现方式
    10.5.3 工作原理
    第11章 更多信息
    11.1 简介
    11.2 在Windows商店应用中使用计时器
    11.2.1 准备工作
    11.2.2 实现方式
    11.2.3 工作原理
    11.3 在通常的应用程序中使用WinRT
    11.3.1 准备工作
    11.3.2 实现方式
    11.3.3 工作原理
    11.4 在Windows商店应用中使用BackgroundTask
    11.4.1 准备工作
    11.4.2 实现方式
    11.4.3 工作原理

查看详情
您可能感兴趣 / 更多
C#多线程编程实战
C#图书馆自动化技术与应用
于源 著
C#多线程编程实战
C#从入门到精通(第7版)
明日科技
C#多线程编程实战
C#程序设计实验指导与习题测试(第4版)
余青松;江红
C#多线程编程实战
C#开发案例精粹
明日科技
C#多线程编程实战
C#网络应用编程(第4版 微课版)
马骏 韩道军
C#多线程编程实战
C#编程开发实战(微课视频版)
郭佳佳;涂振;陈林
C#多线程编程实战
C#可视化程序设计案例教程 第5版
刘培林 史荧中 刘贵锋
C#多线程编程实战
C# 11和.NET 7入门与跨平台开发(第7版)
(美) 马克·J. 普莱斯(Mark J. Price) 著 叶伟民 译
C#多线程编程实战
C#上位机开发一本通
黄伟 著
C#多线程编程实战
C#项目开发实战(微视频版)
扶松柏
C#多线程编程实战
C#.NET项目开发案例教程(微课视频版)
陈建国;王莹;张锦;王如龙
C#多线程编程实战
C#程序设计
崔舒宁
系列丛书 / 更多
C#多线程编程实战
C#图书馆自动化技术与应用
于源 著
C#多线程编程实战
C#从入门到精通(第7版)
明日科技
C#多线程编程实战
C#程序设计实验指导与习题测试(第4版)
余青松;江红
C#多线程编程实战
C#开发案例精粹
明日科技
C#多线程编程实战
C#网络应用编程(第4版 微课版)
马骏 韩道军
C#多线程编程实战
C#编程开发实战(微课视频版)
郭佳佳;涂振;陈林
C#多线程编程实战
C#可视化程序设计案例教程 第5版
刘培林 史荧中 刘贵锋
C#多线程编程实战
C# 11和.NET 7入门与跨平台开发(第7版)
(美) 马克·J. 普莱斯(Mark J. Price) 著 叶伟民 译
C#多线程编程实战
C#上位机开发一本通
黄伟 著
C#多线程编程实战
C#项目开发实战(微视频版)
扶松柏
C#多线程编程实战
C#.NET项目开发案例教程(微课视频版)
陈建国;王莹;张锦;王如龙
C#多线程编程实战
C#程序设计
崔舒宁
相关图书 / 更多
C#多线程编程实战
C#图书馆自动化技术与应用
于源 著
C#多线程编程实战
C#从入门到精通(第7版)
明日科技
C#多线程编程实战
C#程序设计实验指导与习题测试(第4版)
余青松;江红
C#多线程编程实战
C#开发案例精粹
明日科技
C#多线程编程实战
C#网络应用编程(第4版 微课版)
马骏 韩道军
C#多线程编程实战
C#编程开发实战(微课视频版)
郭佳佳;涂振;陈林
C#多线程编程实战
C#可视化程序设计案例教程 第5版
刘培林 史荧中 刘贵锋
C#多线程编程实战
C# 11和.NET 7入门与跨平台开发(第7版)
(美) 马克·J. 普莱斯(Mark J. Price) 著 叶伟民 译
C#多线程编程实战
C#上位机开发一本通
黄伟 著
C#多线程编程实战
C#项目开发实战(微视频版)
扶松柏
C#多线程编程实战
C#.NET项目开发案例教程(微课视频版)
陈建国;王莹;张锦;王如龙
C#多线程编程实战
C#程序设计
崔舒宁