// Добавим ссылку на объект на сервере в буффер // И если в буфере количество больше заданного // То отсылается массив ссылок, а буфуе очищается // Сделано, для ускорения действи при межпроцессном взаимодействии public void DeleteObject(AutoWrapClient Object) { //if (ServerIsClosed) return; lock (_syncForDelete) { _deletedObjects.Add(Object.Target); if (_deletedObjects.Count > _countDeletedObjects) { SendDeleteObjects(); } } }
public AutoWapEnumerator(AutoWrapClient target, TcpConnector connector) { _connector = connector; if (!AutoWrapClient.TryInvokeMember( 0, "GetIterator", new object[] { target }, out var result, _connector )) { throw new Exception(_connector.LastError); } _enumerator = (AutoWrapClient)result; }
// Отсылаем массив ссылок для удаления их из зранилища объектов на сервере private void SendDeleteObjects() { var ms = new MemoryStream(); var bw = new BinaryWriter(ms); bw.Write((byte)CallMethod.DeleteObjects); bw.Write(_deletedObjects.Count); foreach (var i in _deletedObjects) { bw.Write(i); } bw.Flush(); _deletedObjects.Clear(); var res = SendMessage(ms); object result = null; if (!AutoWrapClient.GetResult(res, ref result, this)) { throw new Exception(LastError); } }