/// <summary> /// 添加延迟执行按照帧数 call, delayframes, mn and isUnique. /// </summary> /// <param name='call'> /// 方法. /// </param> /// <param name='delayframes'> /// 延迟帧数. /// </param> /// <param name='mn'> /// 承载回掉函数的实例是否存在的判断. /// </param> /// <param name='isUnique'> /// 是否是唯一的方法. /// </param> public static CallObj Add(DelayCall call, int delayframes, MonoBehaviour mn = null, bool isUnique = false) { if (!inited) { inited = true; UpdateManager.AddCoroutine(null, 0, OnUpdate); } if (isUnique) { for (int i = 0; i < calls.size; i++) { CallObj call2 = calls[i]; if (call2.mn == mn && call2.call == call) { return(call2); } } } var callobj = new CallObj(); callobj.call = call; callobj.isMN = (mn != null); callobj.mn = mn; callobj.frame = counter + delayframes; calls.Add(callobj); return(callobj); //calls.Add(Time.frameCount+delayframes,call); //calls[Time.frameCount+delayframes]+=call; }
public async Task <string> Call3Async(CallObj obj, string s1) { var s = $"[Call3Async]...{obj.P1}, {obj.P2}"; Console.WriteLine(s); return(s); }
/// <summary> /// 删除延迟执行. /// </summary> /// <param name='call'> /// Call. /// </param> public static void remove(CallObj call) { if (call != null) { calls.Remove(call); } }
private static CallObj getcall() { CallObj call = new CallObj(); call.phoneNumber = "13650367330"; return(call); }
private static void OnUpdate(float delta) { ++counter; if (calls.size != 0) { for (int i = 0; i < calls.size; ++i) { CallObj call = calls[i]; if (call.frame <= counter) { calls.RemoveAt(i); if (call.isMN && call.mn == null)//|| !call.mn.enabled)) { } else { try{ call.call(); }catch (Exception e) { Debug.LogException(e); } } --i; } } } //time call if (calltimes.size != 0) { for (int i = 0; i < calltimes.size; ++i) { CallTimeObj call = calltimes[i]; if (call.time <= Time.realtimeSinceStartup) { calltimes.RemoveAt(i); if (call.isMN && call.mn == null)//|| !call.mn.enabled)) { } else { try{ call.call(); }catch (Exception e) { Debug.LogException(e); } } --i; } } } }
/// <summary> /// /// </summary> /// <param name="args"></param> static void Main(string[] args) { //MailObj mailg = getmail(); //AlarmManager.mail.fillqueue(mailg,1); //SmsObj smsg=getsms(); //AlarmManager.sms.fillqueue(smsg,1); CallObj callg = getcall(); AlarmManager.call.fillqueue(callg, 1); }
public async Task <string> Call4Async(CallObj obj, Func <double, Task> cb, CancellationToken token) { string s = $"[Call4Async]...{obj.P1}, {obj.P2}"; for (int i = 0; i < 50; i++) { await cb(i); await Task.Delay(100, token); } Console.WriteLine(s); return(s); }
public Task <string> Call3Async(CallObj obj, string s1, Func <double, Task> cb, CancellationToken token) { throw new NotImplementedException(); }
public Task <string> Call3Async(CallObj obj) { throw new NotImplementedException(); }