/// <summary> /// rollback使用 暂时忽略 /// </summary> /// <param name="data"></param> public void AddDataRollback(List <SyncedData> data) { for (int i = 0; i < data.Count; i++) { SyncedData data2 = this.GetData(data[i].tick); bool fake = data2.fake; if (fake) { if (!data2.EqualsData(data[i])) { data[i].dirty = true; SyncedData.pool.GiveBack(controls[data[i].tick]); controls[data[i].tick] = data[i]; break; } data2.fake = false; data2.dirty = false; } SyncedData.pool.GiveBack(data[i]); } }
// 添加数据 public void AddDataRollback(List <SyncedData> data) { for (int i = 0; i < data.Count; i++) { SyncedData data2 = this.GetData(data[i].tick); bool fake = data2.fake; if (fake) // 取出的是假数据 { bool flag = data2.EqualsData(data[i]); if (!flag) // 两个数据不想等 { data[i].dirty = true; // 设置为脏数据 SyncedData.pool.GiveBack(this.controls[data[i].tick]); // 回收该位置的数据 this.controls[data[i].tick] = data[i]; // 放入新数据 break; // 中断,没有下一个数据要处理? } data2.fake = false; data2.dirty = false; } SyncedData.pool.GiveBack(data[i]); } }
public void AddDataRollback(SyncedData[] data) { for (int i = 0; i < data.Length; i++) { SyncedData data2 = this.GetData(data[i].tick); bool fake = data2.fake; if (fake) { bool flag = data2.EqualsData(data[i]); if (flag) { data2.fake = false; data2.dirty = false; } else { data[i].dirty = true; this.controls[data[i].tick] = data[i]; } } } }