C#在Unity游戏开发中进行多线程编程的方法

2019-12-30 12:21:47王冬梅
易采站长站为您分析C#在Unity游戏开发中进行多线程编程的方法,文中总结了Unity中使用多线程的几种方式以及一款多线程插件的介绍,需要的朋友可以参考下  

在这之前,有很多人在质疑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);
}

三、线程执行无参方法,限制线程要使用的最大堆栈大小

构造语法