コード例 #1
0
ファイル: WebServer.cs プロジェクト: yousafgill/Posh
        private static void Worker()
        {
            WaitHandle[] wait = new[] { FReady, FStop };
            while (0 == WaitHandle.WaitAny(wait))
            {
                HttpListenerContext context;
                lock (FQueue)
                {
                    if (FQueue.Count > 0)
                    {
                        context = FQueue.Dequeue();
                    }
                    else
                    {
                        FReady.Reset();
                        continue;
                    }
                }

                try
                {
                    ProcessRequest(context);
                }
                catch (Exception e)
                {
                    Console.Error.WriteLine(e);
                }
            }
        }
コード例 #2
0
ファイル: WebServer.cs プロジェクト: yousafgill/Posh
 private static void ContextReady(IAsyncResult ar)
 {
     try
     {
         lock (FQueue)
         {
             FQueue.Enqueue(FHTTPListener.EndGetContext(ar));
             FReady.Set();
         }
     }
     catch { return; }
 }