using System;
using System.Collections;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using UnityEngine;
/*
*
* 日期: 2019.5.5
*
* 功能:让多线程和任务可以完美安全退出
*
* 注:知识量还不足,只能写写简单功能
*
*/
namespace MyTool.Static
{
/// <summary>
/// 自用多线程
/// </summary>
public class MyThread
{
public bool isStart = false;
public Thread thread;
public MyThread(Action<MyThread> action)
{
thread = new Thread(() => { action(this); })
{ IsBackground = true };//设置为后台线程
}
/// <summary>
/// 线程启动
/// </summary>
public void Start()
{
isStart = true;
thread.Start();
}
/// <summary>
/// 线程退出
/// </summary>
public void End()
{
isStart = false;
}
}
public class MyTask
{
public bool isStart = false;
public Task task;
public MyTask(Action<MyTask> action)
{
task = new Task(() => { action(this); });
}
/// <summary>
/// 任务启动
/// </summary>
public void Start()
{
isStart = true;
task.Start();
}
/// <summary>
/// 任务退出
/// </summary>
public void End()
{
isStart = false;
}
}
}