private void OnGetContext(IAsyncResult result) { try { var context = m_listener.EndGetContext(result); ThreadPool.QueueUserWorkItem(HandleRequest, context); } finally { m_listener.BeginGetContext(OnGetContext, null); } }