协同程序和中断

Posted MESGOD纯贱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了协同程序和中断相关的知识,希望对你有一定的参考价值。

协同程序

  即在主程序运行时同时开启另一端逻辑处理,来协同当前程序的执行。

  但是它与多线程程序不同,所有的协同程序都是在主线程中执行的,他还是一个单线程程序。

  再Unity中可以通过 StartCoroutine 方法来启动一个协同程序。

 

StartCoroutine 方法为 MonoBehaviour 类中的一个方法,也就是说该方法必须在 MonoBehaviour 或继承与 MonoBehaviour 的类中调用。

StartCoroutine 方法也可以使用返回值作为 IEnumerator 类型方法的参数。具体操作时可以使用如下的C#代码片段来实现。

using UnityEngine;
//引入系统包
using System.Collections;
//声明类
public class NewBehaviourScript
{
    //重写 Start 方法
    void Start()
    {
        //开启协同程序
        StartCoroutine(doThing());
  }

     //声明 doThing 方法
     IEnumerator doThing()
     {
        //打印提示信息
        Debug.Log("dothing");
        yield return null; 
     }
    
}
    

 

  协同程序中可以使用 yield 关键字来中断协同程序,也可以使用 WaitForSeconds 类的实例化对象让协同程序休眠。

  具体操作时可以使用如下代码片段来实现

using UnityEngine;
//引入系统包
using System.Collections;
//声明类
public class NewBehaviourScript
{
    //重写 Start 方法
    void Start()
    {
        //开启协同程序
        StartCoroutine(doThing());
  }

     //声明 doThing 方法
     IEnumerator doThing()
     {
        //协同程序休眠两s
        yield return new WaitForSeconds(2);
        //打印提示信息
        Debug.Log("dothing");

     }
    
}                 

 

以上是关于协同程序和中断的主要内容,如果未能解决你的问题,请参考以下文章

异常和TCP通讯

与 Jetpack 导航一起使用时,TextField 会中断组合吗?

在intelliJ项目中集成Kotlinx协同程序

用于数据加载的 Android 活动/片段职责

TQ2440开发板学习纪实--- 基于中断的UART串口接收

网卡多队列