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

运行结果

相关连接:
C# 线程简介
C# 开启线程的几种方式

 

计时器方式实现:

class Program
  {
      static void Main(string[] args)
      {
 			Console.WriteLine("Czhenya  ... Main Start");
          WaitFunctions(2);
          Console.WriteLine("Czhenya  ... Main End");
		}
		
	    public static void WaitFunctions(int waitTime)
      {
          if (waitTime <= 0) return;

          Console.WriteLine("开始执行 ...");
          DateTime nowTimer = DateTime.Now;
          int interval = 0;
          while (interval < waitTime)
          {
              TimeSpan spand = DateTime.Now - nowTimer;
              interval = spand.Seconds;
          }

          Console.WriteLine(waitTime + "秒后继续 ...");
      }
}

执行截图:

rus

关于C#代码延时的几种实现的文章就介绍至此,更多相关C# 代码延时内容请搜索编程教程以前的文章,希望大家多多支持编程教程

C#文件的读和写提供了非常多的方法。什么是读?你的程序去读你磁盘里的文件上面是写?你的程序在你磁盘创建文件有什么用?可以保存数据,用户等2次打开时就不用重新加载,或者软件异常,把异常信息或日志信息等进行保存@符 ...