在这之前,有很多人在质疑Unity支不支持多线程,事实上Unity是支持多线程的。而提到多线程就要提到Unity非常常用的协程,然而协程并非真正的多线程。协程其实是等某个操作完成之后再执行后面的代码,或者说是控制代码在特定的时机执行。而多线程在Unity渲染和复杂逻辑运算时可以高效的使用多核CPU,帮助程序可以更高效的运行。本篇主要介绍在Unity中如何使用多线程。
首先引入C#中使用多线程的类库
using System.Threading;
创建线程实例的四种方式
一、线程执行无参方法
构造语法
// 初始化 Thread 类的新实例。
// < param name="start">无参委托对象.</ param>
public Thread(ThreadStart start)
start
类型:System.Threading.ThreadStart
表示开始执行此线程时要调用的方法的 ThreadStart 委托。
void Start()
{
//创建无参线程对象
Thread thr = new Thread(Func_NoArguments);
//启动线程
thr.Start();
}
// Function Of No Arguments.
void Func_NoArguments()
{
Debug.Log("Run Func_NoArguments");
}
二、线程执行有参方法
构造语法
// 初始化 Thread 类的新实例。
// < param name="start">有参委托对象.< /param>
public Thread(ParameterizedThreadStart start)
start
类型:System.Threading.ParameterizedThreadStart
一个委托,它表示此线程开始执行时要调用的方法。
注意:参数只能有一个,且必须为object类型
实例
void Start()
{
//创建有参线程对象
Thread thr = new Thread(Func_Arguments);
//启动线程,传入参数
thr.Start("Lanou");
}
// Function Of Have Arguments.
void Func_Arguments(object data)
{
Debug.Log("Run Func_Arguments, Data = " + data);
}
三、线程执行无参方法,限制线程要使用的最大堆栈大小
构造语法










