Unity下的多线程研究

这篇博客介绍了Unity引擎如何支持多线程,并展示了如何启动和关闭线程。通过`ThreadStart`和`Thread`类创建并启动线程,然后在`CloseThread`方法中使用`Abort`来终止线程。在`OnDestroy`中调用`CloseThread`确保线程资源得到释放。示例代码中展示了如何在一个无限循环中更新变量并延时。

效果:

1.Unity支持多线程的,只要线程不关闭,就一直运行。

2.编辑器模式下,如果线程不关闭,不管是切后台,还是当前场景关闭了,该线程都一直运行。

3.记得销毁线程。

命名空间:

using System.Threading;

1.开启线程

        ThreadStart childRef = new ThreadStart(ThreadTest1);
        childThread = new Thread(childRef);
        childThread.Start();

2。关闭线程

    public void CloseThread()
    {
        if (childThread != null)
        {
            childThread.Abort();
        }
    }

完整代码如下:

using System.Threading;
using UnityEngine;

public class TestThread : MonoBehaviour
{
    static int add_value = 1;
    Thread childThread = null;

    void Start()
    {
        CloseThread();
        ThreadStart childRef = new ThreadStart(ThreadTest1);
        childThread = new Thread(childRef);
        childThread.Start();
    }

    public void ThreadTest1()
    {
        while (true)
        {
            add_value++;
            print("ThreadTest1 is working:"+ add_value);
            Thread.Sleep(1000);
        }
    }

    public void CloseThread()
    {
        if (childThread != null)
        {
            childThread.Abort();
        }
    }


    private void OnDestroy()
    {
        CloseThread();
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值