本来只是想简单带过 .Net , 但不知不觉就写了一大堆, 觉得内容有些混乱, 就在今天花些时间把这些篇的内容作个总整理吧。
SynchronizationContextTaskScheduler
和 threadpoolSynchronizationContextTaskScheduler
, 把任务推入 Threadpool 执行, 但是使用一个外来方法要求 Threadpool 用同步方式执行此任务。 这就是一种 .Net 中 await 的实践方法其中第 1 ,2 ,3 ,12 步新的, 读过前面的流程的读者, 只要看这三步就好。
taskList = 待完成任务列表, 我自己命名的变数
Task.Run
打包多个任务WhenAll
方法, 且传入第2步创建的多个 task , 为了方面之後用 taskList 描述。WhenAllPromise
物件, 且传入 taskListWhenAllPromise
物件中WhenAllPromise
内部执行依序扫描 taskList 内的 taskWhenAllPromise
有可能被挂载到别的 task 执行, 就会被视为 multi-thread )WhenAllPromise
的 reference 挂载到 未完成的 task 的连续任务区(这个名词是我自己取的 XD )WhenAllPromise
内的未完成任务数量为0, 表示任务全部完成, 当即设置回传变数, 与进行回传。WhenAllPromise
有在上面的第 5 步挂载到别的 task。WhenAllPromise
不会结束。Task.WhenAll( taskList )
留在原地闲置。WhenAllPromise
挂载到的任务被 Threadpool 完成, 其会接着运行被挂载的 WhenAllPromise
中的Invoke
方法。Invoke
方法会 atomic 的把未完成任务数量减 1 , 且若减完 1 未完成任务数量为 0 时, WhenAllPromise
当即设置回传变数, 与进行回传。Task.WhenAll( taskList )
顺利回传 taskList 执行结果, 主程序继续往下运行。试着写文章後, 发现一些平常一下就过去的东西撰写出来却要很久, 更不要说要写得好了。
带来的结果就是必须删减内容以及进度赶不上预期 QQ
明天开始就进入後半部分了, 我们会试着读 node.js, 之所以要读 node 有几个原因, 最主要就是我是 node 後端, 对这个比较有兴趣。 其二是, 他的 schedule 部分也在 github 上很好找, 不会像 .Net 一样找不到, 不会有种意尤未尽的感觉。
为了帮助大家理解之後要读的 node.js , 会先开始聊一下 IOCP 和 epoll 等概念。
BOM ( Browser Object Model ) 浏览器物件模型(上) 常听到 JavaSc...
前言: 昨天的进度中,我们大致完成了一个由HTML建构起来的网站,只是看起来真的是太阳春了。今天我...
SCSS 是什麽?跟 SASS 是什麽关系? 说到这两个看起来是一样的东西,但是每次教学文章又发现好...
支线任务:共笔部落格切版 礼拜一的时候终於把留言版做完了,接着是弄共笔部落格的文章列表样板,花了一两...
同心协力操作一个游戏角色,怎麽那麽难?ヽ(≧Д≦)ノ 你都怎麽玩电玩呢? 独自玩闯关、模拟类游戏? ...