Unity技术QQ群:484275915,有需要可以加群相互探讨
#C#多线程的使用
Unity支持多线程。
感谢网友指正错误,两年前写的文章,现在回头看,发现上一句话确实是错的。
这里重申一下,Unity不支持多线程,我们在Unity中使用的多线程其实是C#的多线程,而非Unity的多线程。Unity只有一个主线程,以及使用“协程”的伪线程。
当大家使用到Unity读取外界数据或者操作网格的时候,多线程会非常的好用,因为操作可能比较昂贵,多开辟一个线程充分利用多核CPU的优势是一件非常重要的事情,其实多线程的使用非常简单,但是他却可以避免很多主线程卡死的操作。
在这里我们主要记录一下C#中使用多线程以及线程池。
在C#中使用线程池需要以下这个类库using System.Threading;
private Thread tempThread;
void Start () {
tempThread = new Thread(MyMethod);//将方法注册到线程句柄当中,注意保留这个句柄,因为可能会有用。
tempThread.Start();//这句代码控制这个线程的开始。
}
//这是线程方法
private void MyMethod()
{
Debug.Log("开了一下线程");
}
#C#线程池的使用
线程池相对于线程而言更加方便,在线程池中的线程是由系统进行统一管理,我们在使用的过程中不需要自己去对线程进行开关操作,这些系统都会给我们做了。而且线程池还有一个好处,就是可以传参!
private int m_iParam;//随便一个类型的参数
void Start () {
ThreadPool.QueueUserWorkItem(new WaitCallback(MyMethod), m_iParam);//将方法添加进线程池,并传入参数
}
private void MyMethod(object param)
{
Debug.Log("开了一下线程");
}