在这段代码中,运行到Sleep方法时等待5秒钟,然后打印铃铃铃。(运行的时候直接卡住5秒)

using UnityEngine;
public class test2 : MonoBehaviour
{
    void Start()
    { 
        System.Threading.Thread.Sleep(5000);
        Debug.Log("铃铃铃");
    }
}

另一个方法称为异步程序,就是协程。

using UnityEngine;
using System.Threading;
public class test2 : MonoBehaviour
{
    void Start()
    {
        Debug.Log("开始了");
        Timer timer = new Timer(TimeOut, null, 5000, 0);
        Debug.Log("第二个闹钟");
    }
    private void TimeOut (object state)
    {
        Debug.Log("第一个闹钟");
    }
}

通过以上代码可以看出在“开始了”之后,同时会打印“第二个闹钟”,然后打印第一个闹钟。
在Start方法中创建一个定时器对象timer(定时器Timer类位于System.Threading命名空间内)。
异步的实现依赖多线程。在unity中,执行Start,Update方法就是主线程,定时器会把定时任务交给另外的线程去执行,主线程接着往下执行代码,在等待5秒后,另外的某条线程调用回调函数。

发表评论

电子邮件地址不会被公开。 必填项已用*标注