- 最后登录
- 2019-12-2
- 注册时间
- 2012-8-25
- 阅读权限
- 90
- 积分
- 34660
- 纳金币
- 38268
- 精华
- 111
|
Coroutine&yield
Coroutine效果类似Objective c中的nstread,创建一个线程。但它不是多线程。
StartCoroutine,StopCoroutine,StopAllCoroutines。
Js和c#的调用不同,js不用自己实现协同操作。C#需要调用函数实现协同操作。
Yield效果类似sleep函数,休眠线程。但不是sleep函数。
多线程处理
网上拔下来的例子。在这喷一下那些只懂分享,不去实践的人。
Time.time在多线程中不能用。你们要是运行这段代码就不会原版的分享这东西了。
使用Time.time会导致unity3d整个程序的崩溃。
在unity3d中点pause按钮,只会停止mainthread,不会停止new thread的线程。
using UnityEngine;
using System.Collections;
using System.Threading;
public class MyThread
{
public int count;
string thrdName;
public MyThread(string nam)
{
count = 0;
thrdName = nam;
}
public void***n()
{
Debug.Log("start***n a thread");
do{
Thread.Sleep(1000);
Debug.Log("in child thread"+"count="+count);
count++;
}while(count <20);
Debug.Log("end thread");
}
}
public class AAaA : MonoBehaviour {
// Use this for initialization
void Start () {
//Debug.Log("start main"+Time.time);
MyThread mt = new MyThread("CHILE ");
Thread newThrd = new Thread(new ThreadStart(mt***n));
newThrd.Start();
}
// Update is called once per frame
void Update () {
Debug.Log(Time.time);
}
}
|
|