zoukankan      html  css  js  c++  java
  • C#使用async实现异步代码示例

    1、C#异步简介

    C#使用关键字await实现async异步操作,需要在await关键字后面添加异步代码或者等待代码。如果要优雅的取消异步方法,则需要使用CancellationToken来检测任务是否取消。

    2、代码示例 

    using System;
    using System.Threading;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication
    {
        class Program
        {
            static void Main()
            {
                Console.WriteLine($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss fff} Start Process.");
                var tokenSource = new CancellationTokenSource();
    
                TestAsync(tokenSource.Token, 1500).GetAwaiter();
                Thread.Sleep(4000);
    
                tokenSource.Cancel();
                Console.WriteLine($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss fff} Stop Process.");
            }
    
            private static async Task TestAsync(CancellationToken token, int interval)
            {
                Console.WriteLine($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss fff} Start TestAsync.");
    
                var number = 0;
                while (true)
                {
                    try
                    {
                        //异步延时
                        await Task.Delay(interval, token);
                    }
                    catch (Exception)
                    {
                        break;
                    }
    
                    if (token.IsCancellationRequested)
                    {
                        break;
                    }
    
                    Console.WriteLine($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss fff} Current number: {++number}.");
                }
    
                Console.WriteLine($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss fff} Stop TestAsync.");
            }
        }
    } 

    3、运行截图

  • 相关阅读:
    团体程序设计天梯赛-练习集L1-002. 打印沙漏
    团体程序设计天梯赛-练习集L1-001. Hello World
    腾讯的一笔画游戏
    Educational Codeforces Round 11
    POJ 1149 PIGS
    POJ 3422 Kaka's Matrix Travels
    POJ 2914 Minimum Cut
    POJ 1815 Friendship
    POJ 1966 Cable TV Network
    BZOJ 1797: [Ahoi2009]Mincut 最小割
  • 原文地址:https://www.cnblogs.com/xhubobo/p/14622552.html
Copyright © 2011-2022 走看看