Ejemplo n.º 1
0
        private void RunHttpServerThread()
        {
            _httpListenThread = new Thread(new ThreadStart(() =>
            {
                HttpListener server = new HttpListener();
                try
                {
                    _httpImplanter.MakeHttpPrefix(server);
                    server.Start();
                }
                catch (Exception ex)
                {
                    Logger.Exit("无法启动服务器监听,请检查网络环境。");
                }

                _httpImplanter.Start();

                IAsyncResult result = null;
                while (!_terminated)
                {
                    while (result == null || result.IsCompleted)
                    {
                        result = server.BeginGetContext(new AsyncCallback(ProcessHttpRequest), server);
                    }
                    _ready = true;
                    Thread.Sleep(10);
                }

                server.Stop();
                server.Abort();
                server.Close();
                _httpImplanter.Stop();
            }
                                                           ));

            _httpListenThread.IsBackground = true;
            _httpListenThread.Start();
        }