Headless.IntegrationTests.WebServer.Start C# (CSharp) Method

Start() private method

private Start ( ) : void
return void
        public void Start()
        {
            ThreadPool.QueueUserWorkItem(
                o =>
                {
                    Trace.WriteLine("Webserver running...");

                    try
                    {
                        while (_listener.IsListening)
                        {
                            ThreadPool.QueueUserWorkItem(
                                c =>
                                {
                                    var context = c as HttpListenerContext;
                                    try
                                    {
                                        var response = string.Empty;

                                        if (_responderMethod != null)
                                        {
                                            response = _responderMethod(context);
                                        }

                                        var buf = Encoding.UTF8.GetBytes(response);

                                        context.Response.ContentLength64 = buf.Length;
                                        context.Response.OutputStream.Write(buf, 0, buf.Length);
                                    }
                                    catch
                                    {
                                        // suppress any exceptions
                                    }
                                    finally
                                    {
                                        // always close the stream
                                        context.Response.OutputStream.Close();
                                    }
                                },
                                _listener.GetContext());
                        }
                    }
                    catch
                    {
                        // suppress any exceptions
                    }
                });
        }