![](https://img-blog.csdnimg.cn/ef6935b88914464d9a9caacd31fb9678.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
多线程编程
文章平均质量分 94
C#多线程编程学习相关,主要是基于《并行编程实战:基于C#8和 .NET Core 3》这本书的学习,以及后续的多线程编程实践。
魔术师Dix
API Caller
展开
-
【Unity】移动端草海解决方案
草海是开放大世界渲染的必不可少的因素,Unity 原生的 Terrain 草海效率较低,而且无法与 RVT 结合起来,无法在移动端上实现。因此我们自己搓出来一套草海系统,使用 C# 多线程辅助运算,并能支持割草、烧草等进阶玩法。草的位置、密度、类型还需要根据美术和地形的信息进行自适应。最终效果可以看这个演示视频:GpuTerrain+草海_哔哩哔哩_bilibili地形用GpuTerrain渲染;草海是自定义实时生成运算+Gpu渲染。原创 2024-08-24 15:50:06 · 779 阅读 · 0 评论 -
【C#】并行编程实战:并行编程中的模式
本章将介绍并行编程模式,重点是理解并行代码问题场景并使用并行编程/异步技术解决他们。本章会介绍几种最重要的编程模式。原创 2023-07-27 10:24:00 · 1003 阅读 · 0 评论 -
【C#】并行编程实战:异步流
本章主要介绍异步流:一种将异步多线程和主线程结合使用的方法;原创 2023-07-26 10:44:28 · 507 阅读 · 0 评论 -
【C#】并行编程实战:编写并行和异步代码的单元测试用例
本章将介绍如何编写并行和异步代码的单元测试用例。编写单元测试是大型项目的重要组成部分,是代码健壮可靠、易于维护的必然要求。不过本章书上的代码与 Unity 基本没什么关系,也不适用。但是单元测试在 Unity 中依然是必要的,这里我们基于 Unity 来讨论单元测试。原创 2023-07-25 10:29:39 · 259 阅读 · 0 评论 -
【C#】并行编程实战:使用 Visual Studio 调试任务
本章将介绍可以在 Visual Studio 中的调试工具(包括 Thread 窗口、Tasks 窗口和 Concurrency Visulizer)调试线程。原创 2023-07-24 12:06:54 · 1382 阅读 · 0 评论 -
【C#】并行编程实战:基于任务的异步编程基础(下)
本文主要介绍一下TPL,主要内容为主要内容为异步代码的异常处理和使用异步代码的一些注意事项。原创 2023-07-21 10:06:22 · 120 阅读 · 0 评论 -
【C#】并行编程实战:基于任务的异步编程基础(上)
主要内容为async 和 await 关键字 和手动实现 TAP。原创 2023-07-20 19:59:50 · 135 阅读 · 0 评论 -
【C#】并行编程实战:异步编程详解
本章将从介绍同步代码和异步代码之间的区别开始,然后讨论何时适合使用异步代码,以及何时应避免异步代码。最后我们将讨论并行编程中的新功能以解决异步代码复杂性的帮助。本章相当于阶段性总结,新东西并不多。原创 2023-07-20 14:12:01 · 297 阅读 · 0 评论 -
【C#】并行编程实战:使用延迟初始化提高性能
在前面的章节中讨论了 C# 中线程安全并发集合,有助于提高代码性能、降低同步开销。本章将讨论更多有助于提高性能的概念,包括使用自定义实现的内置构造。本章主要内容为通过延迟初始化提高性能,相对比较简单。原创 2023-07-18 10:08:09 · 687 阅读 · 0 评论 -
【C#】并行编程实战:使用并发集合
但一般来说,共享资源是一个可以由多个线程读写的集合,即便多线程也应该能够同时写入。因此,使用同步原语对于这种数据集合来说,就不是很合适,这种时候推荐使用线程安全集合。原创 2023-07-17 10:43:57 · 1211 阅读 · 0 评论 -
【C#】并行编程实战:同步原语(4)
本章主要介绍轻量级同步原语、屏障和倒数事件、SpinWait和自旋锁。原创 2023-07-14 10:01:29 · 476 阅读 · 0 评论 -
【C#】并行编程实战:同步原语(3)
本章主要介绍信号原语。原创 2023-07-13 10:22:12 · 269 阅读 · 0 评论 -
【C#】并行编程实战:同步原语(2)
当多线程数据共享时,需要用到同步原语。本章为第2篇。主要介绍锁、互斥锁和信号灯。原创 2023-07-12 15:16:17 · 486 阅读 · 0 评论 -
【C#】并行编程实战:同步原语(1)
线程局部存储和分区局部存储,某种程度上可以解决同步问题。但是,当数据共享时,就需要用到同步原语。本章主要介绍互锁操作、.NET中的内存屏障、锁原语。原创 2023-07-11 09:55:14 · 560 阅读 · 0 评论 -
【C#】并行编程实战:使用 PLINQ(3)
本文的主要内容为 PLINQ 中的组合并行和顺序 LINQ 查询、取消 PLINQ 查询、使用 PLINQ 进行并行编程时要考虑的事项和影响 PLINQ 性能的因素。原创 2023-07-10 10:27:28 · 407 阅读 · 0 评论 -
【C#】并行编程实战:使用 PLINQ(2)
本文继续介绍 PLINQ 语句,主要内容为 PLINQ 中的合并选项以及抛出和处理异常。原创 2023-07-07 09:58:23 · 759 阅读 · 0 评论 -
【C#】并行编程实战:使用 PLINQ(1)
LINQ 是语言集成查询(Language Integrate Query , LINQ)的并行实现(P 表示并行)。本章将介绍其编程的各个方面以及与之相关的一些优缺点。本文为第一部分。原创 2023-07-05 11:24:10 · 543 阅读 · 0 评论 -
【C#】并行编程实战:实现数据并行(4)
本章继续学习实现数据并行,本文主要介绍并行循环中的线程存储。这也是本章节的最后一篇。原创 2023-07-03 15:45:18 · 1864 阅读 · 0 评论 -
【C#】并行编程实战:实现数据并行(3)
本章继续学习实现数据并行,本文主要介绍取消循环。原创 2023-07-03 15:45:41 · 535 阅读 · 0 评论 -
【C#】并行编程实战:实现数据并行(2)
本章继续学习实现数据并行,本文主要介绍任务并行度和自定义分区策略相关内容。原创 2023-06-30 10:49:08 · 540 阅读 · 0 评论 -
【C#】并行编程实战:实现数据并行(1)
到目前为止,我们已经掌握了并行编程、任务和任务并行的基础知识。本章将讨论并行编程的另一个重要方面,即数据并行。原创 2023-06-27 20:41:31 · 953 阅读 · 0 评论 -
【C#】并行编程实战:任务并行性(下)
本章继续介绍任务并行性,因篇幅所限,本章为下篇。因为并行编程上手难度较大,因此代码帖得比较多,属于保姆级教程。原创 2023-06-25 12:38:32 · 758 阅读 · 0 评论 -
【C#】并行编程实战:任务并行性(中)
本章继续介绍任务并行性,因篇幅所限,本章为中篇。原创 2023-06-15 23:52:56 · 2612 阅读 · 0 评论 -
【C#】并行编程实战:任务并行性(上)
在 .NET 的初始版本中,我们只能依赖线程(线程可以直接创建或者使用 ThreadPool 类创建)。ThreadPool 类提供了一个托管抽象层,但是开发人员仍然需要依靠 Thread 类来进行更好的控制。而 Thread 类维护困难,且不可托管,给内存和 CPU 带来沉重负担。因此,我们需要一种方案,既能充分利用 Thread 类的优点,又规避它的困难。这就是任务 (Task)。原创 2023-06-14 20:27:23 · 4631 阅读 · 0 评论 -
【C#】并行编程实战:并行编程简介
本章内容为多线程编程入门知识,旨在介绍多线程的特点,以及提供了C#部分基础的多线程API使用。原创 2023-06-13 14:51:46 · 2815 阅读 · 0 评论 -
【C#】并行编程实战:序章
《并行编程实战:基于C#8和.NET Core 3》,我当时买的实体书,长下面这个样子。我买了大概浏览了一下,感觉内容还行(基本都是没见过的新东西),所以打算认真学一下。这一篇作为开头,介绍一下整个学习课程的内容。原创 2023-06-12 20:18:33 · 1667 阅读 · 1 评论 -
【学习积累】Queue 与 ConcurrentQueue性能测试
在 C# 中,关于队列(Queue)有两种,一种就是我们普通使用的队列,另一种是线程安全的队列ConcurrentQueue 。本文将对这两个队列进行一个简单的性能测试,同时讨论一种特殊情况:一个线程入队,一个线程出队时使用 Queue 的情况。原创 2023-04-14 22:08:54 · 1792 阅读 · 2 评论