zoukankan      html  css  js  c++  java
  • 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("下载完成");
    }
    }

  • 相关阅读:
    笔记本硬盘接口SATA, PATA
    dB和dBm的区别
    SQL Server 存储过程分页方案比较
    SQL Server 输出参数OUTPUT
    安装iis5.1时找不到zClientm.exe的解决方法
    mac os x 10.5.8不通本网段
    SQL Server 存储过程分页大全(2005,2000)
    硬盘保修查询网站明细清单希捷硬盘保修查询西数硬盘保修查
    如何让SWT的窗口置顶(总在最上面)?
    ASP.NET(三) Web开发——常用服务器控件
  • 原文地址:https://www.cnblogs.com/qiudongxu/p/11358358.html
Copyright © 2011-2022 走看看