并发集合类 许多多线程应用程序都要求在一个集合中存储和获取数据。.NET Framework 提供的标准集 合类默认不是线程安全的。虽然可以使用上一节描述的同步基元,将添加、查询和删除...
锁定数据 C#语言通过 lock 关键字来提供锁定语义,可用它保证对资源的独占访问。lock 关键字像下 面这样使用: object myLockObject = new object(); ... lock (myLockObject) { // 根据对共享资源进行独...
取消 PLINQ 查询 和普通的 LINQ 查询不同,一个 PLINQ 查询是可以取消的。为此,可以指定来 自 CancellationTokenSource 的一个 CancellationToken 对 象 , 并 使 用 ParallelQuery 的 WithCancellation 扩展方...
指定 PLINQ 查询选项 AsParallel 方法返回的 ParallelEnumerable 对象公开了大量方法,可用它们影响查询的并行处 理方式。例如,可以使用 WithDegreeOfParallelism(并行度)方法指定自己觉得最佳的...
如何利用.NET Framework 4.0 的新功能来并行执行操作。在更早的章节中, 还讲述了如何使用语言集成查询(LINQ)以声明式的方式访问数据。一个典型的 LINQ 查询 会生成一个可枚举的结果集...
使用 AggregateException 类处理任务异常 贯穿全书,我们一直在强调异常处理是任何商业应用程序中的重要元素。到目前为止,你 遇到的所有异常处理结构使用起来都非常简单。只需决定由...
取消任务和处理异常 应用程序在执行长时间运行的操作时,另一个常见的要求是在必要时能取消这个操作。不 能简单粗暴地终止一个任务,因为这可能造成应用程序的数据处于一种不...
任务和 UI 线程一起使用 27.1 节为何使用并行处理来执行多任务处理强调了在应用程序中使用多任务处理的两 个主要原因提高吞吐能力和响应能力。TPL 肯定有助于提高吞吐能力(单位时...
在桌面应用程序中实现多任务处理 多任务处理(Multitasking)是指同时做多件事情的能力。就在不久之前,它还是一种很容 易解释,但很难实现的一个概念。 在最理想的情况中,在多核...
到目前为止,你已学习了如何使用 Microsoft V isual C#构建应用程序提供一个图形用户界面, 并对数据库中的数据进行管理。这些是现代系统的常用功能。然而,随着技术的进步,用 户的...