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("下载完成");
    }
    }

  • 相关阅读:
    锻炼记录
    PHP学习笔记
    返回一个整数数组中最大子数组的和(2)
    四则运算的在线答题(判断对错,记录错题)
    返回一个二维整数数组的最大子数组的和
    返回一个整数数组中最大子数组的和
    程序2:支持真分数的四则运算
    程序1:四则运算
    四则运算3.0版本
    返回二维数组子数组和最大值
  • 原文地址:https://www.cnblogs.com/qiudongxu/p/11358358.html
Copyright © 2011-2022 走看看