当前位置: 首页 > news >正文

C#异步Task,await,async和Unity同步协程

标题

    • Task
    • await
    • async
    • Unity协程

Task

Task是声明异步任务的必要关键字,也可以使用Task<>泛型来定义Task的返回值。

await

await是用于等待一个Task结束,否则让出该线程控制权,让步给其他线程,直到该Task结束才往下运行。

async

异步声明的关键词。

举例:
MyTask声明了一个Task,该Task又匿名函数定义不接受参数,并且函数主体是睡觉1秒。Task.Run用于分配线程资源,如果该任务完成就归还线程资源到线程池,后续await task等待该函数完成,并且打印信息。

namespace ConsoleApp1
{internal class Program{static async Task Main(string[] args){Program program = new Program();await program.MyTask();}public async Task MyTask(){Task task = Task.Run(() =>{Thread.Sleep(1000);});await task;Console.WriteLine("This is Task");}}
}

Unity协程

协程是同步的,由主线程调度。

public class CoroutineExample : MonoBehaviour
{void Start(){// 启动协程StartCoroutine(MyTask());}IEnumerator MyTask(){Debug.Log("开始任务");// 等待1秒yield return new WaitForSeconds(1f);Debug.Log("1秒后执行此代码");}
}

相关文章:

  • 数字果园管理系统的设计与实现(Tensorflow的害虫识别结合高德API的害虫定位与Websocket的在线聊天室)
  • Hive JOIN 优化策略详解
  • jMeter压测环境部署JDK+Groovy+JMeter+Proto+IntelliJ IDEA
  • MySQL 从入门到精通(二):DML 数据操作与 DQL 数据查询详解
  • Hive表JOIN性能问
  • K8S服务的请求访问转发原理
  • 【程序员AI入门:开发】11.从零构建智能问答引擎:LangChain + RAG 实战手册
  • Unreal 从入门到精通之VR常用操作
  • Java SpringBoot基于协同过滤算法的电影推荐系统,附源码+文档说明
  • 更换内存条会影响电脑的IP地址吗?——全面解析
  • 全国青少年信息素养大赛 Python编程挑战赛初赛 内部集训模拟试卷六及详细答案解析
  • 如何修改进程优先级?
  • 以影像为笔,劳润智在世界舞台上书写艺术之路
  • vim 查看复杂的宏扩展
  • 人形机器人:主控芯片
  • JGL066生活垃圾滚筒筛分选机实验装置
  • 车载电子电器架构 --- 汽车网关概述
  • 《P7167 [eJOI 2020] Fountain (Day1)》
  • RK3568-OpenHarmony(1) : OpenHarmony 5.1的编译
  • 湖仓一体架构在金融典型数据分析场景中的实践
  • 第19届威尼斯建筑双年展开幕,中国案例呈现“容·智慧”
  • 习近平结束对俄罗斯国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典回到北京
  • 巴基斯坦外长:印巴已同意立即停火
  • 要更加冷静地看待“东升西降”的判断
  • 巴基斯坦军方:印度导弹袭击巴首都附近空军基地
  • 央行:下阶段将实施好适度宽松的货币政策