c# task

Task Parallel Library: 1 of n

http://www.codeproject.com/Articles/152765/Task-Parallel-Library-of-n

Task 与Thread, lambda,  action,funct之间有什么关联。

Task相比Thread提供了什么方便之处。

Thread

1. 创建费时间,占用内存与CPU的资源

For example, when a new Thread is started in .NET, there is a whole process that goes with that, such as creating queues, thread local storage, managing the Thread's lifecycle etc. This takes time

ThreadPool

1. ThreadPool 免去了创建thread的时间,用户直接将work item 委托给ThreadPool去安排其内部的线程调用。

2. 但classic threading ThreadPool,当一个work item已经在执行当中,用户不能去直接关闭,想得到其的结果也是很直接。

However, even using the classic threading ThreadPool, there were problems in that you could not cancel a work item once it has been queued with the ThreadPool, or get a return result that easily. It just doesn't read that well either. There is an excellent article here on CodeProject that tackles some of these issues: Smart ThreadPool, which is pretty excellent actually. However, the new TPL infrastructure has got all these problems covered, and many many more useful features in my opinion.

Task

1. the new TPL infrastructure has got all these problems covered, and many many more useful features in my opinion

Task 继承了ThreadPool的优点,解决了ThreadPool的问题。其本质也可以讲Smart ThreadPool

2. A TPL Task actually uses the ThreadPool internally.

 

Task, ThreadPool, Thread, Scheduler

It is worth mentioning that Tasks are merely wrappers for passing a delegate of work to be done, also storing state, exceptions, and continuations amongst others. That work may or may not be done by the threadpool, and as already stated, that will depend upon the scheduler used.

 

常用的使用场景

Tasks also seem to be more inline with how people think about things. For instance, imagine this scenario: "I want to call a Web Service and have it return a List<int>". Using a TPL Task, I would create a Task<List<int>> and get it to call some service in its payload delegate (which will use the ThreadPool) that returned me a List<int>.

 

Task与UI Thread

reate/cancel Tasks and handle Exceptions

转载于:https://www.cnblogs.com/pengxinglove/p/5452799.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux之找出两个文件里面相同的数据

1 问题 找出2个文件里面重复的数据&#xff08;这个问题是csdn排名第一的大神stpeace的专栏在微信里面和我的交流&#xff0c;我当时一脸懵逼&#xff09; 文件a.txt文件内容如下 cat a.txt 123 123 234 345 456文件b.txt文件内容如下 cat b.txt 234 345 456 789 789两个文…

LAMP部署脚本--安装篇

#!/bin/bash # By Stranded 2015-08-20CMA_Vcmake-2.8.6 APA_Vhttpd-2.2.15 MYS_Vmysql-5.5.22 LIB_Vlibmcrypt-2.5.8 MHA_Vmhash-0.9.9.9 MCR_Vmcrypt-2.6.8 PHP_Vphp-5.3.28apache(){# 判断是否有RPM方式安装的httpd、httpd-manual软件包&#xff0c;如果有则卸载if [ $(rpm …

php基础教程 第九步 自定义函数

自定义函数 在之前的课程我们有使用到php的系统函数&#xff0c;这些函数由系统定义。在开发中&#xff0c;有时候系统自带的函数满足不了我们开发时&#xff08;或其它情况&#xff09;&#xff0c;我们可以自定义函数。顾名思义&#xff0c;自定义函数就是自己定义函数。 自…

ArcGIS实验教程——实验十二:栅格数据投影变换

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据) 一、实验描述 投影变换是指将一种地图投影转换为另一种地图投影,主要包括投影类型、投影参数和椭球体参数等的改变。 二、实验内容 (一)栅格数据投影变换 (二)栅格数据变换 1、平移 2、扭曲…

zdal配置文件_在项目中使用分库分表中间件Zdal详解

如何构建Zdal&#xff0c;这篇文章主要介绍如何在传统的Java Web项目中引入Zdal&#xff0c;来达到分库或者分表的目的&#xff0c;本文是《zdal设计文档》的实战补充。添加zdal-client依赖在Zdal项目中有很多模块&#xff0c;这些模块分别有着不同的功能和角色&#xff0c;在z…

如何使用 C# 隐藏 Console 窗口?

咨询区 Stefan Steiger我有一个 Console 程序&#xff0c;它主要用来重启 IIS 以及删除临时文件&#xff0c;我现在期望它启动后隐藏自身&#xff0c;我在网上找了下面这段代码做了隐藏。static void Main(string[] args) {var currentProcess System.Diagnostics.Process.Get…

Java之new一个对象简单过程

1 问题 new一个对象简单过程 2 过程 1&#xff09;类加载过程(第一次使用该类) 先看这个类有没有加载到内存&#xff0c;没有的话下面操作 &#xff08;1&#xff09;、加载&#xff1a;类加载器&#xff08;双亲委派模式&#xff09;通过全限名读取类的二进制流到jvm内部&am…

编写登陆接口

用任意一种语言实现登陆接口 作者&#xff1a;尹正杰 版权声明&#xff1a; 本篇博客仅仅用于交流学习使用&#xff0c;对一些小功能的实现&#xff0c;来练习对代码的熟练度。同时&#xff0c;本篇博客允许转载&#xff0c;用于互相交流学习&#xff0c;转载必须在博客声明原链…

php基础教程 第十步 阶段性知识补充

简 在php教程中前九步已经了解了php的一些基础知识。大多数人在了解完以上知识后脑子还是迷茫的&#xff0c;最多懂的一些我所讲解过的知识如何实现&#xff08;对象为零基础读者&#xff09;&#xff0c;如何搭建一个网站还是不知晓。没关系&#xff0c;接下来我们即将进入ph…

C#集合类型——Array、ArrayList、List 之浅谈

在学习或工作中&#xff0c;集合是经常用到的&#xff0c;可以换一句话说“无项目无集合”&#xff0c;“项目皆有集合”。它一般存储一系列数据或者将一系列数据进行相关操作。在这里先大略谈一些集合类型的相关知识用于回顾。 数组&#xff08;Array&#xff09; 数组一般只存…

CentOS Linux 系统命令之rmdir命令

在Linux中目录创建是使用mkdir&#xff0c;那有创建目录的命令自然有删除目录的命令&#xff0c;删除目录的命令是rmdir。命令格式&#xff1a;rmdir [选项] 目录参数选项&#xff1a;-p 可以递归删除&#xff0c;但是不能删除非空目录-v 显示删除过程命令实例&#xff1a;1&am…

ArcGIS实验教程——实验十三:栅格空间插值分析

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据) >>> 实验前必读:《完美解决ArcGIS10.x栅格空间插值报错无法进行和导出插值栅格结果出错的问题》 一、实验描述 一般情况下采集到的数据都是以离散点的形式存在的,只有在这些采样点上才有…

Java之Callable和Runnable

1 接口定义 1) Callable接口 public interface Callable<V> {V call() throws Exception; } 2) Runnable接口 public interface Runnable {public abstract void run(); } 2 不同点和相同点 1&#xff09;相同点 都是接口&#xff0c;都可编写多线程程序&#xff…

ARM路线的投机性和欺骗性

过去十年里&#xff0c;在自主CPU取得了长足进步的同时&#xff0c;一批企业积极引进英特尔、AMD、VIA、IBM、ARM、高通等公司的技术&#xff0c;或是成立合资公司&#xff0c;相对于X86、Power等处理器很容易被识别为技术引进CPU&#xff0c;ARM的欺骗性则要强很多&#xff0c…

营业执照在线一键生成_如何在线制作证件照?证件照一键生成的方法

如何在线制作证件照&#xff1f;每一年的毕业季也是就业季&#xff0c;几百多万的大学生都面临着找工作&#xff0c;而在工作之前必须准备好证件照&#xff0c;这样方便参加面试和入职。随着市场需求的逐步扩大&#xff0c;很多便捷的软件和网站都被设计出来了&#xff0c;比如…

php基础教程 第十一步 面向对象

面相对象 面向对象程序设计简称OOP&#xff08;Object-oriented programming&#xff09;。是一种类型的抽象&#xff0c;或者说是一种类型以编码的方式进行描述。概念上理解并不能直观的说明问题&#xff0c;以下将会有示例为读者直观的感受面向对象。 类代表一个类别&#…

Hype3使用体验

优点 上手简单&#xff0c;会操作常规软件操作的话一天之前可以掌握基本功能&#xff1b;屏幕适配方便&#xff0c;通过布局&#xff08;或者成为断点&#xff09;来适配不同屏幕分辨率&#xff1b;动画通过时间线方式来设定&#xff0c;并且多一行属性配置&#xff0c;而且可以…

ArcGIS实验教程——实验十四:空间数据库的建立

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据) 一、实验描述 1、GeoDataBase描述 地理数据库(空间数据库)GeoDataBase是一种面向对象的数据模型,它对于地理特征的表达更接近于我们对现实世界的认识。 它建立在标准的关系数据库(RDBMS)基础…

Android NDK开发Crash错误定位[转]

使用 ndk-stack 的时候需要你的 lib 编译为 debug版的&#xff0c;通常需要下面的修改&#xff1a; 1. 修改 android.mk&#xff0c;增加&#xff0c;为 LOCAL_CFLAGS 增加 -g 选项 2. 修改 application.mk&#xff0c;增加 APP_OPTIM : debug 3. nkd-build -B 4. 从 obj/local…

Java之多线程里面的锁理解以及synchronized与Lock的区别

一、宏观的说下锁的分类 1&#xff09;锁分为乐观锁、悲观锁 悲观锁认为对于同一个数据的并发操作&#xff0c;一定是会发生修改的&#xff0c;哪怕没有修改&#xff0c;也会认为修改。因此对于同一个数据的并发操作&#xff0c;悲观锁采取加锁的形式。悲观的认为&#xff0c…