public IAsyncResult BeginRequest(Message message, TimeSpan timeout, AsyncCallback callback, object state) { base.ThrowIfDisposedOrNotOpen(); base.RemoteAddress.ApplyTo(message); var request = new Common.AsyncRequestContext(message, timeout, callback, state); DispatchToListener(request); base.PendingRequests.Add(request); return request; }
public IAsyncResult BeginRequest(Message message, TimeSpan timeout, AsyncCallback callback, object state) { base.ThrowIfDisposedOrNotOpen(); base.RemoteAddress.ApplyTo(message); var request = new Common.AsyncRequestContext(message, timeout, callback, state); DispatchToListener(request); base.PendingRequests.Add(request); return(request); }
public virtual Message Request(Message message, TimeSpan timeout) { base.ThrowIfDisposedOrNotOpen(); base.RemoteAddress.ApplyTo(message); var request = new Common.AsyncRequestContext(message, timeout); base.PendingRequests.Add(request); try { ThreadPool.QueueUserWorkItem(new WaitCallback(DispatchToListener), request); //this.DispatchToListener(request); return request.WaitForReply(); } finally { base.PendingRequests.Close(request); } }
public virtual Message Request(Message message, TimeSpan timeout) { base.ThrowIfDisposedOrNotOpen(); base.RemoteAddress.ApplyTo(message); var request = new Common.AsyncRequestContext(message, timeout); base.PendingRequests.Add(request); try { ThreadPool.QueueUserWorkItem(new WaitCallback(DispatchToListener), request); //this.DispatchToListener(request); return(request.WaitForReply()); } finally { base.PendingRequests.Close(request); } }