首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
C# 高级编程 读书日更 第15章 异步编程
温水小青蛙
创建于2022-02-18
订阅专栏
脑筋急刹车
等 1 人订阅
共23篇文章
创建于2022-02-18
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
How to get return value from Task wait()
## How to get return value from Task wait() The typical method would be to just write ``` var result
c# 高级编程 21章496页 【任务和并行编程】【小结】
在应用程序中 使用多线程 要仔细规划 太多线程: 导致资源问题 线程不足: 又会使应用程序执行缓慢 抽象 有助于避免创建过多的线程,因为 线程 是在池中 重用的 创建多个任务的各种方法 Paralle
c# 高级编程 21章485页 【任务和并行编程】【WaitHandle类】【Mutex类】【Semaphore类】【ManualResetEventSlim】
WaitHandle类 抽象基类 SafeWaitHandle属性:可以将一个句柄赋予一个操作系统资源,并等待该句柄。 e.g. 可以指定一个SafeWaitHandle等待文件I/O操作的完成 可以
c# 高级编程 21章483页 【任务和并行编程】【Interlocked类】
Interlocked 类 i++ i++ 不是线程安全的:以下操作流程可能会被线程调度器打断 从内存中取一个值 该值递增1 再将结果存储回内存 Interlocked.CompareExchange
c# 高级编程 21章480页 【任务和并行编程】【lock语句】【Monitor类】【SpinLock】
lock 语句 lock(共享的 引用类型的 实例) 输出: 对比一: 这里的另一种做法 依然 无法消除 争用条件。这另一种做法是: 对比二: 这里的另另一种做法 可以消除 争用条件。这另另一种做法是
c# 高级编程 21章477页 【任务和并行编程】【条件争用】【死锁】
线程问题 争用条件 死锁 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
c# 高级编程 21章475页 【任务和并行编程】【Timer类】
Timer类 两个计时器: System.Threading命名空间中的Timer类 基于XAML应用程序的DispatcherTimer类 System.Threading.Timer 构造函数接收
c# 高级编程 21章472页 【任务和并行编程】【数据流 TPL Data Flow】
数据流 TPL Data Flow的核心:数据块 数据块 可以作为: 提供数据的源 接收数据的目标 既是源又是目标 使用 动作块 ActionBlock<T> 初始化ActionBlock<T>的实例
c# 高级编程 21章470页 【任务和并行编程】【取消】
取消 长时间运行的操作,检查取消的方式: IsCancellationRequested属性 取消标记时,使用WaitHandle属性 使用Register方法,接收以下参数: Action:在取消标
c# 高级编程 21章464页 【任务和并行编程】【任务】
任务 System.Threading.Tasks命名空间中的Task类 不仅可以获得一个抽象 还可以对底层线程进行很多控制 这个工作单元: 可以在单独的线程中运行 也可以以同步方式启动。这需要等待主
c# 高级编程 21章460页 【任务和并行编程】【Parallel类】
Parallel 类 位于System.Threading.Task命名空间 提供了数据和任务的并行性 是对线程的一个很好的抽象 定义了静态方法: For(): 在每个迭代中调用相同的代码 ForEa
c# 高级编程 21章458页 【任务和并行编程】【概述】
使用多线程的 原因 对于需要等待的操作,例如:文件、数据库、网络访问。启动一个新线程,与此同时,可以去完成其他事情。 对于处理密集型的操作,使用多线程也有帮助。一个进程的多个线程可以同时运行在: 不同
【并行编程 笔记】【简介】
简介 Parallel 编程本质上是把问题拆分成或大或小的部分,每部分分开独立计算。如果你愿意,还可以把结果aggregate起来 parallel和asynchronous programming
【异步编程 笔记】【写一个假的返回Task的方法,来代替一个耗时耗钱的异步方法】
如何为返回Task的方法写unit test 写一个Mock的StockService 啊啊啊啊啊啊
【异步编程 笔记】【控制continuation的执行context】
控制continuation的执行context 有时候我们不在意是否回到了调用线程,这时候为了提高性能,可以用configureAwait(false) 对于controller, 有以下特点:
【异步编程 笔记】【多个Task】
等多个Task全部完成再继续 等多个Task在规定时间内全部完成再继续 利用Task.WhenAny() 和Task.Delay() 加上时间约束: 处理多个Task 每一个都等完成后立即处理 目标:
【异步编程 笔记】【取消Task】
取消Task CancellationTokenSource 和 CancellationToken 成对使用 CancellationToken,被传给异步操作 示例 一个search button
【异步编程 笔记】【Continuation 如何使用】
初始示例 可以有两种办法,来控制后续的执行: await loadLinesTask loadLinesTask 继续chain上 continuation Continuation 这里contin
【异步编程 笔记】【何时使用Task.Run】
Task 代表一个异步操作 它使得我们可以,从异步操作中得到 result, 它使得我们可以,设定当异步操作结束的时候,开启另一个工作 它使得我们,当得知有问题时, cancel 异步操作 Task.
c# 高级编程 15章323页 【异步与Windows应用程序】
异步与Windows应用程序 输出: 如何不使用同步上下文 ConfigureAwait(continueOnCapturedContext: true) 就可以不使用同步上下文 输出: UWP应用程
下一页