private async Task UpdateNextItems() { var Len = await Client.GetData <int>(); var ServerUpCodes = new ulong[Len]; ulong[] ServerUpCodes_Parent = null; if (IsPartOfTable) { ServerUpCodes_Parent = new ulong[Len]; } for (int i = 0; i < Len; i++) { var UpCode = await Client.GetData <ulong>(); if (IsPartOfTable) { var ParentUpCode = await Client.GetData <ulong>(); if (ParentTable.UpdateAble.IsExist(ParentUpCode)) { var ParentUpDate = ParentTable.UpdateAble[ParentUpCode]; if (PartTable.IsExist(ParentUpDate.Key) == false) { PartTable.Accept(ParentUpDate.Key); } Added(ParentUpDate.Key, UpCode); await Client.SendData(false); StartPos++; Len--; i--; } else { await Client.SendData(true); ServerUpCodes[i] = UpCode; ServerUpCodes_Parent[i] = ParentUpCode; } } else { await Client.SendData(true); ServerUpCodes[i] = UpCode; } } for (int i = 0; i < Len; i++) { var Value = await Client.GetData <ValueType>(); var Key = Table.GetKey(Value); var Update = new UpdateAble <KeyType>() { Key = Key, UpdateCode = ServerUpCodes[i] }; Table.UpdateOrInsert(Key, (c) => { Table.MoveRelations(c, Value); return(Value); }); if (IsPartOfTable) { Added(Key, ServerUpCodes[i], ServerUpCodes_Parent[i]); } else { Added(Key, ServerUpCodes[i]); } StartPos++; } }