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# 之 代码实现延时的更多相关文章
- 关于alert后,才能继续执行后续代码问题
如果在正常情况下,代码要在alert之后才执行,解决办法:将要执行的代码用setTimeout延迟执行即可(原因:页面未加载完毕) 首先,先说明问题情况: 如下JS代码,不能正常执行,只有在最前面加上 ...
- 从单片机到操作系统⑦——深入了解FreeRTOS的延时机制
>没研究过操作系统的源码都不算学过操作系统 # FreeRTOS 时间管理 时间管理包括两个方面:系统节拍以及任务延时管理. ## 系统节拍: 在前面的文章也讲得很多,想要系统正常运行,那么时钟 ...
- ScheduleMaster新特性之延时任务初体验
ScheduleMaster在上个月底更新到了2.0版本,在功能和代码以及文档上都往前跨了很大一步,详细信息可以参考这篇文章:https://www.cnblogs.com/hohoa/p/12772 ...
- iOS多线程实现3-GCD
原文链接:http://www.cnblogs.com/mddblog/p/4767559.html 敲下gcd三个字母,搜狗第一条显示居然是“滚床单” ^_^ 一.介绍 GCD,英文全称是Grand ...
- 自动刷新页面为了session不过期
为了保证在打开页面期间session不过期,估做了一个隐藏Iframe每隔若干秒来刷新一下页面,在隐藏页面给session赋值. <script type="text/javascri ...
- 【复位】FGPA的复位 [部分转]
关于FGPA的复位 当初开始学FPGA的时候,总是疑惑:FPGA不是没有复位管教么,但总在always看到有复位信号.这个复位信号(我们暂且称为rst_n)从哪里来? 实际上是可以从两个方面获得的,这 ...
- js中setInterval与setTimeout用法
setTimeout 定义和用法: setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式. 语法: setTimeout(code,millisec) 参数: ...
- 关于表格前面checkbox复选框不打勾的问题
当点击左边的树节点的时候,让右边的表格自动选中相应的行,但是选中的行前面如果有checkbox,可能复选框虽然选中了但是不打上勾,解决方案,将遍历表格数据那段代码用延时器包裹一下.
- Android——进度对话框
java类代码: //普通进度对话框 public void bt8_onClick(View v) { final ProgressDialog progressDialog = new Progr ...
随机推荐
- 浅谈radis
1.概述 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API 从2010年3月15日起,Redis的开发工作由VM ...
- 想要学好Git,应该掌握哪些基础知识?
说到Git,作为程序员的你,在项目开发中一定会使用到或将来也一定会使用到的,但是我相信,很多在使用Git的人,都只是停留一些简单的操作上,比如提交(commit).拉取(pull).推送(push). ...
- 分类问题(一)MINST数据集与二元分类器
分类问题 在机器学习中,主要有两大类问题,分别是分类和回归.下面我们先主讲分类问题. MINST 这里我们会用MINST数据集,也就是众所周知的手写数字集,机器学习中的 Hello World.sk- ...
- Map中放入对象字符串转义问题
在做Zuul网关日志处理的时候,有以下需求: (1)记录请求成功的日志,要求记录请求返回的结果. 遇到的问题: (1)当请求的结果事对象时,会将其转成字符串,在put进map的时候,字符串就会被转义 ...
- 使用NSIS制作可执行程序的安装包
使用NSIS制作可执行程序的安装包: 1,NSIS下载地址:https://pan.baidu.com/s/1GzzQNXgAlJPJWgjBzVwceA 下载完成之后解压缩,打开安装程序,默认安装即 ...
- SpringCloud大白话之服务注册中心
SpringCloud-Eureka白话说明 eureka.client.register-with-eureka 属性表示是否将自己注册到Eureka Server, 默认为true. 由于当前应用 ...
- 使用Powershell开机启动隐藏窗口的程序
1.打开注册表找到键值:计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 2.添加字符串值:StartJetSer ...
- unity的一些特殊目录
Hidden Folders Folders that start with a dot (e.g. ".UnitTests/", ".svn/") are i ...
- STL初探
关于STL的一些东西 感言: 学C++不学STL函数库的人可能都是... 有点问题 头文件<algorithm>的一些东西 sort,快排: 这是个初学者必需掌握的东西,及其好用,因为方( ...
- Visual Studio 2015创建ASP.NET MVC流程
本文链接:https://blog.csdn.net/begindong/article/details/68059437本人这两天第一次对c#进行系统学习,写出来做个学习记录和大家分享,以下有什么错 ...