/// <summary> /// Constructor. /// </summary> public ArbiterSlimActiveClientStub(IArbiterClient client) { _client = client; //_executionStrategy = new FrameworkThreadPoolExecutionStrategy(this); _executionStrategy = new ThreadPoolFastExecutionStrategy(this, true); Construct(); }
/// <summary> /// Constructor. /// </summary> public ArbiterSlimActiveClientStub(IArbiterClient client, ArbiterSlimExecutionStrategy executionStrategy) { _client = client; _executionStrategy = executionStrategy; SystemMonitor.CheckThrow(executionStrategy != null, "Execution strategy not assigned."); Construct(); }
/// <summary> /// Receive an envelope for executing. /// </summary> /// <param name="canExecute">Can directly execute on this thread.</param> public bool Receive(Envelope envelope) { EnvelopeUpdateDelegate envelopeReceivedDelegate = EnvelopeReceivedEvent; if (envelopeReceivedDelegate != null) { envelopeReceivedDelegate(this, envelope); } ArbiterSlimExecutionStrategy executionStrategy = _executionStrategy; if (executionStrategy != null) { executionStrategy.Execute(envelope); } return(true); }