SwapUnderlying() public method

public SwapUnderlying ( ICell cell ) : void
cell ICell
return void
示例#1
0
        /// <summary>
        /// TBD
        /// </summary>
        /// <param name="cell">TBD</param>
        public void ReplaceWith(ICell cell)
        {
            lock (_lock)
            {
                try
                {
                    DrainSysMsgQueue(cell);

                    while (_messageQueue.Count > 0)
                    {
                        // roughly equal to what "poll" does
                        var e = _messageQueue.First.Value;
                        _messageQueue.RemoveFirst();
                        cell.SendMessage(e.Sender, e.Message);

                        // drain sysmsgQueue in case a msg enqueues a sys msg
                        DrainSysMsgQueue(cell);
                    }
                }
                finally
                {
                    _self.SwapUnderlying(cell);
                }
            }
        }
示例#2
0
 public void ReplaceWith(ICell cell)
 {
     lock (_lock)
     {
         try
         {
             foreach (var envelope in _messageQueue)
             {
                 cell.Post(envelope.Sender, envelope.Message);
             }
         }
         finally
         {
             _self.SwapUnderlying(cell);
         }
     }
 }
        public void ReplaceWith(ICell cell)
        {
            lock (_lock)
            {
                try
                {
                    DrainSysMsgQueue(cell);

                    foreach (var envelope in _messageQueue)
                    {
                        cell.SendMessage(envelope.Sender, envelope.Message);

                        // drain sysmsgQueue in case a msg enqueues a sys msg
                        DrainSysMsgQueue(cell);
                    }
                }
                finally
                {
                    _self.SwapUnderlying(cell);
                }
            }
        }