예제 #1
0
파일: Server.cs 프로젝트: iEmiya/HTTPServer
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.UnhandledException += (sender, e) => FatalExceptionObject(e.ExceptionObject);
            try
            {
                Log.Info("Запускаем приложение...");
                if (!SetCurrentDirectory())
                {
                    return;
                }

                // Определим нужное максимальное количество потоков
                // Пусть будет по 4 на каждый процессор
                int maxThreadsCount = Environment.ProcessorCount * 4;
                // Установим максимальное количество рабочих потоков
                ThreadPool.SetMaxThreads(maxThreadsCount, maxThreadsCount);
                // Установим минимальное количество рабочих потоков
                ThreadPool.SetMinThreads(2, 2);

                Settings.Initialization();

                // Создадим новый сервер на порту
                new Server(Settings.Port);
            }
            catch (Exception huh)
            {
                FatalExceptionHandler.Handle(huh);
            }
        }
예제 #2
0
파일: Server.cs 프로젝트: iEmiya/HTTPServer
        static void FatalExceptionObject(object exceptionObject)
        {
            var huh = exceptionObject as Exception;

            if (huh == null)
            {
                huh = new NotSupportedException(
                    "Unhandled exception doesn't derive from System.Exception: "
                    + exceptionObject.ToString()
                    );
            }
            FatalExceptionHandler.Handle(huh);
        }