| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 | using Fort23.Core;namespace Fort23.UTool{    /// <summary>    /// 协程锁    /// </summary>    public class CoroutineLock : Entity    {        public long key;        public int count;        public bool isTimeout;        public string keyName;        [CustomMethod(CustomMethodType.Awake)]        public  void Awake( long k,string keyName, int count)        {            this.keyName = keyName;            this.key = k;            this.count = count;        }        [CustomMethod(CustomMethodType.Destroy)]        public  void Destroy()        {            if (!this.isTimeout)            {                CoroutineLockComponent.Instance.Notify(this.key, keyName,this.count + 1);            }            else            {                LogTool.Error($"coroutine lock timeout: {this.keyName} {this.count}");            }            this.key = 0;            this.count = 0;        }    }    public struct CoroutineLockTimer    {        public CTask<CoroutineLock> tcs;        /// <summary>        /// 持续时间        /// </summary>        public int duration;        public string keyName;    }}
 |