|
|
- static void Main(string[] args)
- {
- // demo1();
- // demo2();
- demo3();
- Console.ReadLine();
- }
- //任务延续
- static void demo1()
- {
- Task<int> task = Task.Run(() => {
- Console.WriteLine("任务1被执行!");
- return 1;
- });
- Task ContinueTask = task.ContinueWith(t => {
- Console.WriteLine($"任务1的执行结果{t.Result},任务状态{t.Status}");
- Console.WriteLine("任务2被执行!");
- });
-
- }
- static async Task demo2()
- {
- Task<int> task = Task.Run(() => {
- Console.WriteLine("任务1被执行!");
- return 1;
- });
- await task.ContinueWith(t => {
- Console.WriteLine($"任务1的执行结果{t.Result},任务状态{t.Status}");
- Console.WriteLine("任务2被执行!");
- });
- }
- static void demo3()
- {
- //定时取消任务
- var cts = new CancellationTokenSource(3000);
- Task<int> task = Task.Run(() => {
- for (int i = 0; i < 10; i++)
- {
- //任务取消抛出异常
- cts.Token.ThrowIfCancellationRequested();
- Console.WriteLine("任务1被执行!");
- Thread.Sleep(1000);
- }
-
- return 1;
- },cts.Token);
- Task ContinueTask = task.ContinueWith(t => {
- try
- {
- Console.WriteLine($"任务1的执行结果{t.Result},任务状态{t.Status}");
- }
- catch (Exception ex)
- {
- Console.WriteLine($"任务1的状态{t.Status},{ex.Message}");
- }
-
- Console.WriteLine("任务2被执行!");
-
- },TaskContinuationOptions.OnlyOnCanceled);
- }
复制代码
|
|