目录Task.Delay();异步实现线程实现:计时器方式实现:Task.Delay();异步实现 using System; using System.Threading.Ta
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 + "秒后继续 ...");
}
}
执行截图:
到此这篇关于C#代码延时的几种实现的文章就介绍到这了,更多相关C# 代码延时内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: C#代码延时的几种实现
本文链接: https://www.lsjlt.com/news/131845.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0