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

2019-12-30 12:21:47王冬梅

// 初始化 Thread 类的新实例。
// < param name="start">无参委托对象.< /param>
// < param name="maxStackSize">使用的最大堆栈大小.< /param>
public Thread(ThreadStart start,int maxStackSize)

start

类型:System.Threading.ThreadStart
表示开始执行此线程时要调用的方法的 ThreadStart 委托。

maxStackSize

类型:System.Int32
线程要使用的最大堆栈大小(以字节为单位);如果为 0,则使用可执行文件的文件头中指定的默认最大堆栈大小。
重要事项:对于部分受信任的代码,如果 maxStackSize 大于默认堆栈大小,则将其忽略。 不引发异常。


void Start()
{
 //创建无参线程对象,限制256KB堆栈大小
 Thread thr = new Thread(Func_NoArguments,262144);
 //启动线程
 thr.Start();
}
// Function Of No Arguments.
void Func_NoArguments()
{
 Debug.Log("Run Func_NoArguments");
}

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

构造语法


// 初始化 Thread 类的新实例。
// < param name="start">有参委托对象.< /param>
// < param name="maxStackSize">使用的最大堆栈大小.< /param>
public Thread(ParameterizedThreadStart start,int maxStackSize)

start

类型:System.Threading.ParameterizedThreadStart
一个委托,它表示此线程开始执行时要调用的方法。
注意:参数只能有一个,且必须为object类型

maxStackSize

类型:System.Int32
线程要使用的最大堆栈大小(以字节为单位);如果为 0,则使用可执行文件的文件头中指定的默认最大堆栈大小。
重要事项:对于部分受信任的代码,如果 maxStackSize 大于默认堆栈大小,则将其忽略。 不引发异常。

实例


void Start()
{
 //创建有参线程对象,限制256KB堆栈大小
 Thread thr = new Thread(Func_Arguments,262144);
 //启动线程,传入参数
 thr.Start("Lanou");
}
// Function Of Have Arguments.
void Func_Arguments(object data)
{
 Debug.Log("Run Func_Arguments, Data = " + data);
}

启动线程(上文已使用)

无参启动