1. Task (任务):

很容易调用 ThreadPool.QueueUserWorkItem 实现异步操作,但是这个技术有许多

.net 引入Task类型来使用任务。

如下几种方式都是实现异步的方法:

  public static void Method(){ThreadPool.QueueUserWorkItem((o) => Console.WriteLine(""));//通过Start()来调度任务new Task(() => Console.WriteLine("")).Start();//通过Run方法 来调度任务Task.Run(() => Console.WriteLine(""));        Task.Factory.StartNew(() => Console.WriteLine(""));}

  a. 为了创建一个Task,需要调用构造器并传递一个Action 或 Action<Object> 委托。这个委托就是你想执行的代码操作。

  b. 如果调用Run 可以传递一个Action 或 Fun<Tresult> 委托。 两种区别在于 Aciton 无返回值, Fun 有返回值

2. 等待 任务完成并获取结果:

 public static void Method2(){//创建一个TaskTask<int> t = new Task<int>(n => Sum((int)n), 10);//启动任务
            t.Start();//等待任务完成
            t.Wait();//获取结果Console.WriteLine("Sum is:{0}", t.Result);}private static int Sum(int n){int sum = 0;for (; n > 0; n--){checked { sum += n; }}return sum;}

3. 取消任务:

CancellationTokenSource

Parallel 静态 For,ForEach和Invoke.

Task.Run(async () => await Result);

转载于:https://www.cnblogs.com/dragon-L/p/5399254.html

.net 任务(Task)相关推荐

  1. VS Code 配置调试参数、launch.json 配置文件属性、task.json 变量替换、自动保存并格式化、空格和制表符、函数调用关系、文件搜索和全局搜索、

    1. 生成配置参数 对于大多数的调试都需要在当前项目目录下创建一个 lanch.json 文件,位置是在当前项目目录下生成一个 .vscode 的隐藏文件夹,在里面放置一些配置内容,比如:settin ...

  2. 完美解决Error:Execution failed for task ':APP:transformClassesWithDexForDebug'...问题

    今天下载一个demo运行出现问题,错误如下图 我的问题是JDK 1.8 版本问题问题,我吧1.8改成1.7运行成功 这个实在app下面的build.gradle 相信大伙在Android开发过程中都避 ...

  3. 安卓中运行报错Error:Execution failed for task ':app:transformClassesWithDexForDebug'解决

    在androidstuio中运行我的未完项目,报错: Error:Execution failed for task ':app:transformClassesWithDexForDebug'. & ...

  4. Execution failed for task ':app:mergeDebugResources'.

    这个问题就是资源文件重名了, 它下面有提示的路径,根据路径找到位置, 最后把自己不小心帖进去的删除掉即可 大致如下 Execution failed for task ':app:mergeDebug ...

  5. Android关于Task的一些实践之SingleTask, SingleInstance和TaskAffinity

    上一篇文章粗略地介绍了一下关于Android中Task的基本知识.只是实践才是检验真理的唯一标准,所以.今天就来试验一下Task中的launchMode是否真的实现了文档所说的那样. 首先.定义三个A ...

  6. Spark源码分析之七:Task运行(一)

    在Task调度相关的两篇文章<Spark源码分析之五:Task调度(一)>与<Spark源码分析之六:Task调度(二)>中,我们大致了解了Task调度相关的主要逻辑,并且在T ...

  7. 点击Notification正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例...

    NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE ...

  8. C# Task注意事项

    1.在Task中调用主线程控件 Task.Factory.StartNew(() => {}).ContinueWith(task => {this.Invoke(new Action(( ...

  9. activiti任务TASK

    一.概要 设计TASK的表主要是:ACT_RU_TASK,ACT_HI_TASKINST(见参考-activiti表): 任务主要有:人工任务(usertask),服务任务(servicetask)等 ...

  10. Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessException

    异常Log: Error:Execution failed for task ':app:dexDebug'.  > com.android.ide.common.process.Process ...

最新文章

  1. caffe 人脸关键点检测_全套 | 人脸检测 人脸关键点检测 人脸卡通化
  2. mybatis 开发环境搭建
  3. 功能测试——Selenium自动化功能测试
  4. GDCM:gdcm::Codec的测试程序
  5. 启动Spark Shell,在Spark Shell中编写WordCount程序,在IDEA中编写WordCount的Maven程序,spark-submit使用spark的jar来做单词统计
  6. 通过DataX从Oracle同步数据到MySQL-安装配置过程
  7. html5----圆形多角
  8. 谷歌称语音识别是下一个机会,尤其在发展中国家
  9. 深度残差网络(ResNet)详解与实现(tensorflow2.x)
  10. 【深度学习】深度学习分类与模型评估
  11. Elasticsearch模块功能之-索引分片分配(Index shard allocation)
  12. 序列最小最优化算法(SMO) SVM凸优化求
  13. 仿某云宝一元云购系统网站源码v1.0
  14. DSkinControl( For MFC) 控件- dsCtrlComboBox
  15. 绘制地形图(测量篇2——实测数据导入CAD)-龙啸
  16. linux设置双屏拼接_Linux下双屏显示设置
  17. 计算机接口图形,图形设备接口
  18. 三、JavaSE_集合(Set)
  19. 怎么添加扫描仪到计算机快捷键,Win7系统扫描仪添加方法
  20. Stacked Attention Networks for Image Question Answering(用于图像问答的堆叠注意力网络)

热门文章

  1. bash删除文件中的空行
  2. el-table文字超出隐藏;el-table表格文字一行展示,超出隐藏,多余的内容会在 hover时显示 ;
  3. [ECMAScript] 谈谈你对es6的module体系的理解
  4. [react-router] React-Router怎么获取历史对象?
  5. javascript学习系列(23):数组中的解构方法
  6. [html] 页面布局时你使用最多的标签是什么?div吗?在什么情况下会使用到div?
  7. [html] 怎样使用iframe刷新父级页面?
  8. [css] 请问background-attachmentn属性有什么用途?
  9. [css] 你用过outline属性吗?它有什么运用场景
  10. [css] 为什么float会导致父元素塌陷