返回顶部
首页 > 资讯 > 精选 >C#中Task.ContinueWith连续任务怎么用
  • 120
分享到

C#中Task.ContinueWith连续任务怎么用

2023-06-29 04:06:56 120人浏览 安东尼
摘要

这篇文章给大家分享的是有关C#中Task.ContinueWith连续任务怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。通过任务,可以指定在任务完成之后,应开始运行之后另一个特定任务。例如,一个使用前一个任

这篇文章给大家分享的是有关C#中Task.ContinueWith连续任务怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

通过任务,可以指定在任务完成之后,应开始运行之后另一个特定任务。例如,一个使用前一个任务的结果的新任务,如果前一个任务失败了,这个任务就应执行一些清理工作。任务处理程序都不带参数或者带一个对象参数,而任务的连续处理方法都有一个Task类型的参数,这里可以访问起始任务的相关信息:

如下面的示例代码: 

   class Program    {        static void DoOnFirst()        {            Console.WriteLine($"doing some task{Task.CurrentId}");            Thread.Sleep(3000);        }        static void DoOnSecond(Task t)        {            Console.WriteLine($"task {t.Id} finished");            Console.WriteLine($"this task id {Task.CurrentId}");            Console.WriteLine("doing some cleanup");            Thread.Sleep(3000);        }        static void Main(string[] args)        {            Task t1 = new Task(DoOnFirst);            t1.Start();                        Task t2 = t1.ContinueWith(DoOnSecond);            Task t3 = t1.ContinueWith(DoOnSecond);            Task t4 = t2.ContinueWith(DoOnSecond);            Console.ReadKey();        }    }

连续任务通过在任务上调用ContinueWith()方法来定义。也可以使用TaskFactory类来定义。t1.ContinueWith(DoOnSecond)方法表示,调用DoOnSecond()方法的新任务应在任务t1结束时立即启动。在一个任务结束时,可以启动多个任务,连续任务也可以有另外一个连续任务。如下面的例子所示:

            Task t1 = new Task(DoOnFirst);            t1.Start();                        Task t2 = t1.ContinueWith(DoOnSecond);            Task t3 = t1.ContinueWith(DoOnSecond);            Task t4 = t2.ContinueWith(DoOnSecond);

使用TaskCreationOptions枚举中的值,可以指定,连续的任务只有在起始任务成功(或者失败)结束时启动。一些可能的值是OnlyOnFaulted、NotOnFaulted 、OnlyOnCanceled、NotOnCanceled和OnlyOnRanToCompletion。

Task t5 = t1.ContinueWith(DoOnError, TaskContinuationOptions.OnlyOnFaulted)

C# Task.ContinueWith 返回对象

使用Task.ContinueWith 可以在Task完成时而继续执行的逻辑

当在ContinueWith中需要返回一个对象时,应该如何使用

 下方代码可以表示,在设置缓存完成后,重新读取缓存,并返回

 var item = await SetCacheItemAsync("key",  cacheItems)                .ContinueWith<>(async _ => await cacheItem.GetAsync(key));

感谢各位的阅读!关于“C#中Task.ContinueWith连续任务怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: C#中Task.ContinueWith连续任务怎么用

本文链接: https://lsjlt.com/news/322493.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C#中Task.ContinueWith连续任务怎么用
    这篇文章给大家分享的是有关C#中Task.ContinueWith连续任务怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。通过任务,可以指定在任务完成之后,应开始运行之后另一个特定任务。例如,一个使用前一个任...
    99+
    2023-06-29
  • C#连续任务Task.ContinueWith方法怎么用
    这篇“C#连续任务Task.ContinueWith方法怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#连续任务Ta...
    99+
    2023-06-30
  • C#连续任务Task.ContinueWith方法
    一、简介 通过任务,可以指定在任务完成之后,应开始运行之后另一个特定任务。ContinueWith是Task根据其自身状况,决定后续应该作何操作。也就是说,在运行完task后,会执行...
    99+
    2024-04-02
  • C#中Task.ContinueWith连续任务使用实例
    通过任务,可以指定在任务完成之后,应开始运行之后另一个特定任务。例如,一个使用前一个任务的结果的新任务,如果前一个任务失败了,这个任务就应执行一些清理工作。任务处理程序都不带参数或者...
    99+
    2024-04-02
  • C#怎么使用Task.ContinueWith组合任务
    这篇文章主要讲解了“C#怎么使用Task.ContinueWith组合任务”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#怎么使用Task.ContinueWith组合任务”吧!代码案例简...
    99+
    2023-06-30
  • C#使用Task.ContinueWith组合任务
    代码案例 简单Demo 代码: public static void Main() { //创建一个任务 ...
    99+
    2024-04-02
  • C#怎么合并多个连续空格符
    C#怎么合并多个连续空格符,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。我们使用正则表达式来实现合并多个连续C#空格符,类Regex 的名称空间是:System.Text....
    99+
    2023-06-17
  • C#怎么Task执行任务
    本篇内容介绍了“C#怎么Task执行任务”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Task执行任务,等待任务完成代码://任务Func&...
    99+
    2023-07-02
  • c语言的连续赋值问题怎么解决
    C语言的连续赋值问题是指在一条语句中连续赋值多个变量时可能会出现的问题。例如: int a, b; a = b = 10; 在这个例...
    99+
    2023-10-27
    c语言
  • SQL中怎么利用LeetCode实现连续的数字
    SQL中怎么利用LeetCode实现连续的数字,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。[LeetCode] 180.Consecutive Numbers 连续的数字...
    99+
    2023-06-20
  • C#任务并行Parellel.For和Parallel.ForEach怎么使用
    这篇文章主要介绍了C#任务并行Parellel.For和Parallel.ForEach怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#任务并行Parellel.For和Parallel.ForEac...
    99+
    2023-07-02
  • 怎么用C语言实现任务调度
    这篇文章主要介绍“怎么用C语言实现任务调度”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用C语言实现任务调度”文章能帮助大家解决问题。任务调度模式结构整体上的结构属于线性结构,结合链表和定时器来...
    99+
    2023-07-05
  • 怎么用Spt_Values解决SQL中的连续日期问题
    本篇内容主要讲解“怎么用Spt_Values解决SQL中的连续日期问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Spt_Values解决SQL中的连续...
    99+
    2024-04-02
  • python中怎么对多变量连续赋值
    这篇文章主要介绍了python中怎么对多变量连续赋值,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码如下self.batch_size = batch_...
    99+
    2023-06-15
  • C++中怎么连接MySQL
    C++中怎么连接MySQL,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、为什么使用MySQL C API效率!C++可以通过多种方式连接上...
    99+
    2024-04-02
  • C#中怎么连接Access
    这期内容当中小编将会给大家带来有关C#中怎么连接Access,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C#连接Access程序代码: using System.Data; &nbs...
    99+
    2023-06-17
  • C#怎么使用Twain协议实现扫描仪连续扫描功能
    本篇内容主要讲解“C#怎么使用Twain协议实现扫描仪连续扫描功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#怎么使用Twain协议实现扫描仪连续扫描功能”吧!C#调用Twain接口实现扫...
    99+
    2023-06-26
  • SpringBoot中怎么使用定时任务
    本篇文章为大家展示了SpringBoot中怎么使用定时任务,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 线程实现利用线程可以设定休眠时间的方式可以实现简单的定时任务逻辑。  ...
    99+
    2023-06-02
  • 怎么用CSS实现连续字符换行
    这篇文章主要介绍“怎么用CSS实现连续字符换行”,在日常操作中,相信很多人在怎么用CSS实现连续字符换行问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用CSS实现连续字符...
    99+
    2024-04-02
  • 怎么在python中利用切片获取非连续序列
    这期内容当中小编将会给大家带来有关怎么在python中利用切片获取非连续序列,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作