public void Request(Envelope <TRequest> envelope, IResponseReceiver <TResponse> request) { var thread = _workerPool.GetThreadPoolDispatcher(); var responseWaiter = new DispatchableRequest <TRequest, TResponse>(_func, envelope, Id, request); thread.DispatchAction(responseWaiter); }
public void Publish(Envelope <TPayload> message) { var action = new PublishEventThreadAction <TPayload>(_action, message); var context = _workerPool.GetThreadPoolDispatcher(); context.DispatchAction(action); }
public void Scatter(Envelope <TRequest> request, IGatherReceiver <TResponse> scatter) { var action = new DispatchableScatter <TRequest, TResponse>(_action, request, Id, Name, scatter); var context = _workerPool.GetThreadPoolDispatcher(); context.DispatchAction(action); }
public IActionDispatcher GetThreadPoolDispatcher() { return(_inner.GetThreadPoolDispatcher()); }
public IActionDispatcher GetThreadPoolDispatcher() { return(_workerPool.GetThreadPoolDispatcher()); }