using Fort23.Core;
namespace Fort23.UTool
{
///
/// 协程锁
///
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 tcs;
///
/// 持续时间
///
public int duration;
public string keyName;
}
}