随笔分类 - C#线程
摘要:一、概述 一个线程可以有多个任务,一个任务也可以包含多个任务。把一个任务附加给另一个任务,就需要用到ContinueWith()。 该方法是Task类中的方法,有多个重载,其中最基本的参数除了任务之外,还得有TaskContinueOption。常用方法如下: t2.ContinueWith(inn
阅读全文
摘要:一、概述 在讲任务取消之前,得先了解取消令牌跟取消令牌源,实现任务取消功能的就是依靠这两个。 CancellationTokenSource:取消令牌源类,拥有Cancel()方法,可以给关联的令牌发送取消信号。 CancellationToken:取消令牌,结构体,拥有ThrowIfCancell
阅读全文
摘要:一、同步、异步 首先我们得跳出我们的固有思维,我们生活中常说的同步就是一起执行,但是计算机中同步却是另外的概念! 举个例子,你家里只有一个洗手间,但是你跟你爸都想上厕所,怎么办?只能一个一个来,没有问题,问题 在于你在等你爸从洗手间出来的这段时间里,你是站在门口一直等还是去干其他的?那么同步跟异步的
阅读全文
摘要:一、进程 进程就是正在运行的程序,它会占用对应的内存区域,由CPU进行执行与计算,。进程的特点包括: 并发性:可以多个进程并发执行、互不影响。 独立性:进程有自己的内存空间,在当前进程没有允许的情况下,其他进程无法访问。 动态性:程序集本身是静态的,但是加上时间的概念之后就有了运行时间跟生命周期,如
阅读全文
摘要:一、概述 编译器提供的便捷功能,就是语法糖。可以理解为是为了优化代码。被async修饰的函数被称之为异步函数,主要用于异步编程,着重于靠await实现回调机制。 二、声明 async/await由三部分组成:调用方法、异步函数、await表达式。调用方法调用异步函数,异步函数包含await表达式。
阅读全文
摘要:一、概念 为防止一个应用程序占用CPU导致其他程序和操作系统长时间挂起,操作系统把物理计算单元分割为虚拟的进程,并赋予一定的计算能力。 线程就是实现分割物理单元的方法。一个进程可以拥有多个线程。 二、多线程 线程可以看做是虚拟的进程,用于独立运行指定的程序。而线程与线程之间的协作跟通信又成为我们不得
阅读全文
摘要:一、概念 TPL的核心就是任务,一个任务代表一个异步操作,该操作可以通过多种方式运行,一个任务也可以由多个任务组成。 二、应用 1、创建任务有三种方法: var t1 = new Task(() => TaskMethod("Task 1")); //通过Task构造函数创建 var t2 = ne
阅读全文