查看: 34|回复: 0

C# 任务延续和组合

[复制链接]

280

主题

1

回帖

1467

积分

管理员

积分
1467
QQ
发表于 2025-10-20 20:26:48 | 显示全部楼层 |阅读模式
  1.   static void Main(string[] args)
  2.   {
  3.       // demo1();
  4.       // demo2();
  5.       demo3();
  6.       Console.ReadLine();
  7.   }

  8.   //任务延续
  9.   static void demo1()
  10.   {


  11.       Task<int> task = Task.Run(() => {
  12.           Console.WriteLine("任务1被执行!");
  13.           return 1;
  14.       });

  15.       Task ContinueTask = task.ContinueWith(t => {
  16.           Console.WriteLine($"任务1的执行结果{t.Result},任务状态{t.Status}");
  17.           Console.WriteLine("任务2被执行!");
  18.       });

  19.    
  20.   }

  21.   static async Task demo2()
  22.   {

  23.       Task<int> task = Task.Run(() => {
  24.           Console.WriteLine("任务1被执行!");
  25.           return 1;
  26.       });

  27.        await  task.ContinueWith(t => {
  28.           Console.WriteLine($"任务1的执行结果{t.Result},任务状态{t.Status}");
  29.           Console.WriteLine("任务2被执行!");
  30.       });
  31.   }

  32.   static void demo3()
  33.   {

  34.       //定时取消任务
  35.       var cts = new  CancellationTokenSource(3000);
  36.       Task<int> task = Task.Run(() => {
  37.           for (int i = 0; i < 10; i++)
  38.           {
  39.               //任务取消抛出异常
  40.               cts.Token.ThrowIfCancellationRequested();
  41.               Console.WriteLine("任务1被执行!");
  42.               Thread.Sleep(1000);
  43.           }
  44.         
  45.           return 1;
  46.       },cts.Token);

  47.       Task ContinueTask = task.ContinueWith(t => {

  48.           try
  49.           {
  50.               Console.WriteLine($"任务1的执行结果{t.Result},任务状态{t.Status}");
  51.           }
  52.           catch (Exception ex)
  53.           {

  54.               Console.WriteLine($"任务1的状态{t.Status},{ex.Message}");
  55.           }
  56.       
  57.           Console.WriteLine("任务2被执行!");
  58.          
  59.       },TaskContinuationOptions.OnlyOnCanceled);


  60.   }
复制代码


高级模式
B Color Image Link Quote Code Smilies

本版积分规则

关于我们

企业文化

人才招聘

常见问题

建议反馈

合作伙伴

商务合作

新闻媒体

产品服务

客户案例

联系我们

联系电话:14776878570(同VX号)

邮箱:14776878570@163.com(同VX号)

工作时间:周一至周六(早上8点至下午10点)

关注微信公众号

QQ|Archiver|手机版|小黑屋|鸿翔机器人

GMT+8, 2025-11-6 15:28 , Processed in 0.058180 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.