• C# 之 代码实现延时


    Task.Delay();异步实现

    using System;
    using System.Threading.Tasks;

    namespace csharpYS
    {
    class Program
    {
    static void Main(string[] args)
    {
    Console.WriteLine("Mian方法第一次输出...");
    #region 第一种形式
    var task_1 = Task.Run(async delegate
    {
    await Task.Delay(3000);
    Console.WriteLine("3秒后执行,方式一 输出语句...");
    return "异步执行result"; //可以得到一个返回值(int,bool,string都试了)
    });
    #endregion

    Console.WriteLine("Mian方法第二次输出,调用延时...");
    Console.WriteLine("task_1 的 Status:{0}, 结果: {1}",task_1.Status, task_1.Result);
    Console.WriteLine("第一种形式,延时结束...");

    #region 第二种形式
    Task task_2 = Task.Run(task_YS);
    //task_2.Wait(); //注释打开则等待task_2延时,注释掉则不等待
    #endregion

    Console.WriteLine("Mian方法最后一次输出,Main方法结束...");
    Console.ReadKey();
    }

    public static async Task task_YS()
    {
    await Task.Delay(5000);
    Console.WriteLine("5秒后执行,方式二 输出语句...");
    }
    }

    }

    下图一为注释运行结果,图二为注释打开运行结果:(建议使用时自行实践)

    觉得上面方法不适用的童鞋,可以试试使用线程的方式:

    线程实现:

    简例:

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Threading;

    namespace ExceptionDeme
    {
    class ThreadDemo
    {
    static void Main(string[] args)
    {
    Console.WriteLine("Main方法开始执行...");
    Thread threadA = new Thread(DownLoadFile);
    threadA.Start();
    Console.WriteLine("Main方法执行结束...");

    Console.ReadKey();
    }

    static void DownLoadFile()
    {
    //模拟开始下载 2S 后完成
    Console.WriteLine("开始下载,此协程的Id是:" + Thread.CurrentThread.ManagedThreadId);
    Thread.Sleep(2000);
    Console.WriteLine("下载完成");
    }
    }

  • 相关阅读:
    完全分布式安装HBase
    HDFS常用的文件API操作
    启动HBase后遇到的一个问题
    HBase常用的数据库API操作
    HBase数据库常用操作命令
    Hive安装
    eclipse中配置hadoop开发环境
    Hadoop小程序倒排索引
    我学习设计模式的一些所想所得
    架构之路实战项目记录(二) 忘记数据库 开始抽象
  • 原文地址:https://www.cnblogs.com/qiudongxu/p/11358358.html
Copyright © 2020-2023  润新知