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# 之 代码实现延时的更多相关文章

  1. 关于alert后,才能继续执行后续代码问题

    如果在正常情况下,代码要在alert之后才执行,解决办法:将要执行的代码用setTimeout延迟执行即可(原因:页面未加载完毕) 首先,先说明问题情况: 如下JS代码,不能正常执行,只有在最前面加上 ...

  2. 从单片机到操作系统⑦——深入了解FreeRTOS的延时机制

    >没研究过操作系统的源码都不算学过操作系统 # FreeRTOS 时间管理 时间管理包括两个方面:系统节拍以及任务延时管理. ## 系统节拍: 在前面的文章也讲得很多,想要系统正常运行,那么时钟 ...

  3. ScheduleMaster新特性之延时任务初体验

    ScheduleMaster在上个月底更新到了2.0版本,在功能和代码以及文档上都往前跨了很大一步,详细信息可以参考这篇文章:https://www.cnblogs.com/hohoa/p/12772 ...

  4. iOS多线程实现3-GCD

    原文链接:http://www.cnblogs.com/mddblog/p/4767559.html 敲下gcd三个字母,搜狗第一条显示居然是“滚床单” ^_^ 一.介绍 GCD,英文全称是Grand ...

  5. 自动刷新页面为了session不过期

    为了保证在打开页面期间session不过期,估做了一个隐藏Iframe每隔若干秒来刷新一下页面,在隐藏页面给session赋值. <script type="text/javascri ...

  6. 【复位】FGPA的复位 [部分转]

    关于FGPA的复位 当初开始学FPGA的时候,总是疑惑:FPGA不是没有复位管教么,但总在always看到有复位信号.这个复位信号(我们暂且称为rst_n)从哪里来? 实际上是可以从两个方面获得的,这 ...

  7. js中setInterval与setTimeout用法

    setTimeout 定义和用法: setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式.     语法: setTimeout(code,millisec)     参数:     ...

  8. 关于表格前面checkbox复选框不打勾的问题

    当点击左边的树节点的时候,让右边的表格自动选中相应的行,但是选中的行前面如果有checkbox,可能复选框虽然选中了但是不打上勾,解决方案,将遍历表格数据那段代码用延时器包裹一下.

  9. Android——进度对话框

    java类代码: //普通进度对话框 public void bt8_onClick(View v) { final ProgressDialog progressDialog = new Progr ...

随机推荐

  1. C++——指针3

    指针作为函数参量 指针作为函数参量,以地址的方式传递数据,可以用来返回函数处理结果:实参是数组名时形参可以是指针. 题目:读入三个浮点数,将整数部分和小数部分分别输出 #include <ios ...

  2. JFinalSwagger插件

    个人博客 地址:http://www.wenhaofan.com/article/20190304101839 jfinal使用swagger的极简插件 码云地址:https://gitee.com/ ...

  3. Oracle监听出现的问题总结,以及解决办法

    包括的错误类型: 1.ORA-12541: TNS: 无监听程序 2. ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 3.ORA-12560: TNS: 协议适配器错误 ...

  4. [0CTF 2016]piapiapia{PHP反序列化漏洞(PHP对象注入)}

    先上学习链接: https://www.freebuf.com/column/202607.html https://www.cnblogs.com/ichunqiu/p/10484832.html ...

  5. Python入门6 —— 流程控制 - if判断

    代码块: 1.代码块指的是同一级别的代码,在python中用缩进相同的空格数(除了顶级代码块无任何缩进之外,其余代码块都是在原有的基础上缩进4个空格)来标识同一级的代码块 2.同一级别的代码块会按照自 ...

  6. (转)Hadoop 简介

    转自:http://www.open-open.com/lib/view/open1385685943484.html mapreduce是一种模式,一种什么模式呢?一种云计算的核心计算模式,一种分布 ...

  7. Oracle 12.2.0.1 Installation Fails With "PRVG-0449"

    Mac 电脑虚拟机 Parallels 中进行Oracle 12.2.0.1 数据库软件安装时,预环境检查过程中,提示堆栈大小限制[失败],即使修复问题依然如故. Oracle 12.2.0.1 In ...

  8. 安卓模拟器genymotion 安装使用

    下载:https://www.genymotion.com/download/ 安装前先注册: https://www.runoob.com/w3cnote/android-tutorial-geny ...

  9. sql注入学习笔记 详解篇

    sql注入的原理以及怎么预防sql注入(请参考上一篇文章) https://www.cnblogs.com/KHZ521/p/12128364.html (本章主要针对MySQL数据库进行注入) sq ...

  10. 使用imread()函数读取图片的六种正确姿势

    OpenCV实践之路——使用imread()函数读取图片的六种正确姿势 opencv里的argv[1]指向的文件在哪里 测试 #include "opencv2/highgui/highgu ...