C#异步编程之:(二)部分心得体会
来源:互联网 发布:赵本山 知乎 编辑:程序博客网 时间:2024/06/06 00:53
唉,想好好学学.Net异步编程,可惜没有好的书,又想深入,又想全面。。。现在看得一本Adam Freeman的,感觉很全面,可惜不深入,只能自己慢慢磨石子过河,写点心得:
1. 感觉.Net提出TPL的概念是为了抽象线程和Mutex,Event,临界区这些东西。Task是对线程的抽象,而CancellationToken给我的感觉就是提供了对Task的控制。Token其实应该是Task内部的成员(用以控制Task的进行),但是.Net把他独立出来,在我看来是非常不错的设计。
2. 所以Task和Token就变成了松耦合。在Task内部可以去访问Token对象,但是没有Token的Task照样可以独立运作。
3. 通过多个Task可以关联/引用/使用同一个Token,就可以把多个Task关联了起来。(Task共享内部的状态)
4. 在我看来,Token是遥控器,Task类(本身的静态方法)是广电总局,控制着所有的电视节目(电视台),每一个Task就是每一个电视节目(电视台),电视台节目什么时候放完,不受遥控器支配,只受电视台本身和广电总局控制,所以电视台提供了Result(你不许转台,直到电视剧结束)和Wait(等着电视剧放完,但是电视台很人性化,仍然可以接受遥控器的指令Token)等方法,广电总局提供了WaitAll, WaitAny方法。
4. Token像一个遥控器,发送指令,Task内部的循环,主动查询Token的状态,而执行对应的操作。
5. 作为Thread.Sleep的替代品,CancellationToken.WaitHandler.Sleep()不但提供了原来的功能,更能在Token.Cancel()时,唤醒Task/Thread。
- C#异步编程之:(二)部分心得体会
- C#学习心得(二) 异步编程
- c#之异步编程 (基于委托)
- 软件编程之心得体会
- C# 学习之 异步编程
- C#编程之C#基础(二)
- C# 并行编程 之 异步编程模型
- 学习java并发编程实战的一些心得体会(二)
- C#学习之(二)同步调用与异步调用
- 晶心-编程路上之心得体会
- C#异步编程之:(三)使用TaskScheduler.UnobservedTaskException
- C#编程之基础总结(二)
- 系统开发之需求分析--心得体会(二)
- C#网络编程之同步异步
- C#语言基础之异步编程
- C#异步编程之async、await
- C#异步编程之浅谈Task
- C#异步编程之浅谈Task
- java odbc jdbc 连接Access
- cin.clear cin.sync 等函数用法
- Mozilla World - 在windows下编译XULRunner
- Class.getResource与ClassLoader.getResource()区别
- 关于编程,鲜为人知的真相
- C#异步编程之:(二)部分心得体会
- iframe自适应高度
- linux led驱动,lcd背光驱动
- drawRect画线,画弧,画方,画圆
- 奇葩,原来C语言输出一个汉字那么搞怪
- 二十岁出头的时候上,你一无所有,你拥有一切。
- 如何理解字符集和字符编码
- do_irq()函数分析
- hdu 3684 Gunshots