public void ReplaceWith(ICell cell) { lock (_lock) { try { foreach (var envelope in _messageQueue) { cell.Post(envelope.Sender, envelope.Message); } } finally { _self.SwapUnderlying(cell); } } }