static void OnQueueAvailable(object state, Exception asyncException)
            {
                ChannelEnqueuedAsyncResult enqueuedAsyncResult = (ChannelEnqueuedAsyncResult)state;

                if (asyncException != null)
                {
                    enqueuedAsyncResult.Complete(false, asyncException);
                }
                else
                {
                    Exception completionException = null;
                    try
                    {
                        enqueuedAsyncResult.listener.channelQueue.EnqueueAndDispatch(enqueuedAsyncResult.channel, enqueuedAsyncResult.listener.onAcceptChannelCallback, false);
                    }
                    catch (Exception e)
                    {
                        completionException = e;
                    }

                    enqueuedAsyncResult.Complete(false, completionException);
                }
            }
 internal void EndEnqueueNewChannel(IAsyncResult result)
 {
     ChannelEnqueuedAsyncResult.End(result);
 }