/// <summary> /// /// </summary> private void RemoteDataudpatePro() { while (!mIsClosed) { if (WorkMode == NetTransformWorkMode.Push) { resetEvent.WaitOne(); if (mIsClosed) { break; } resetEvent.Reset(); if (mCachDatas != null) { int icount = mCachDatas.Count; while (mCachDatas.Count > 0) { // ProcessSingleBufferData(mCachDatas.Dequeue()); ProcessBufferData(mCachDatas.Dequeue()); } ValueUpdateEvent?.Invoke(this, null); } } else { DateTime stime = DateTime.Now; Client.SyncRealMemory(mSyncMemoryCach); double span = (DateTime.Now - stime).TotalMilliseconds; int sleeptime = span > PollCircle ? 1 : (int)(PollCircle - span); ValueUpdateEvent?.Invoke(this, null); Thread.Sleep(sleeptime); } } }
public void OnHealed(Entity subject, float amount) { foreach (Status s in statuses) { s.OnHealed(subject, amount); } healed?.Invoke(subject, amount); }
public void OnUpdate(Entity subject, float dTime) { List <Status> expiredStatuses = new List <Status> (); foreach (Status s in statuses) { s.OnUpdate(subject, dTime); if (s.IsCompleted) { expiredStatuses.Add(s); } } update?.Invoke(this, dTime); }
private void MDriver_ValueUpdateEvent(object sender, EventArgs e) { ValueUpdateEvent?.Invoke(this, e); }