Akka.Actor.ActorCell.Invoke C# (CSharp) Метод

Invoke() публичный Метод

Invokes the specified envelope.
public Invoke ( Envelope envelope ) : void
envelope Envelope The envelope.
Результат void
        public void Invoke(Envelope envelope)
        {
            var message = envelope.Message;
            var influenceReceiveTimeout = !(message is INotInfluenceReceiveTimeout);

            try
            {
                // Akka JVM doesn't have these lines
                CurrentMessage = envelope.Message;
                _currentEnvelopeId++;

                Sender = MatchSender(envelope);

                if (influenceReceiveTimeout)
                {
                    CancelReceiveTimeout();
                }

                if (message is IAutoReceivedMessage)
                {
                    AutoReceiveMessage(envelope);
                }
                else
                {
                    ReceiveMessage(message);
                }
                CurrentMessage = null;
            }
            catch (Exception cause)
            {
                HandleInvokeFailure(cause);
            }
            finally
            {
                if (influenceReceiveTimeout)
                {
                    CheckReceiveTimeout(); // Reschedule receive timeout
                }
            }
        }

Usage Example

Пример #1
0
 /// <summary>
 /// Dispatches a user-defined message from a mailbox to an <see cref="ActorCell"/>        
 /// </summary>
 public virtual void Dispatch(ActorCell cell, Envelope envelope)
 {
     cell.Invoke(envelope);
 }