static void Main(string[] args) { AppDomain.CurrentDomain.SetData("DataDirectory", Application.StartupPath); CourseDBContext context = new CourseDBContext(); ObjectMessageQueue.InitializeQueue(ObjectMessageQueue.DB_REQUEST); ObjectMessageQueue queue = new ObjectMessageQueue(); while (true) { try { Object obj = queue.receiveObject(ObjectMessageQueue.DB_REQUEST); GenericRequest gen_req = obj as GenericRequest; if (gen_req == null) { Console.WriteLine("Error processing request, it is not a request object!"); queue.sendObject(null, ObjectMessageQueue.DB_RESPONSE); } else { Console.WriteLine("Fetching data..."); MessageProcessor parser = new MessageProcessor(context, gen_req); try { Object result = typeof(MessageProcessor).GetMethod(gen_req.Method.ToString()).Invoke(parser, null); Console.WriteLine("It worked!"); queue.sendResponse(result, ObjectMessageQueue.DB_RESPONSE); } catch (SqlException) { Console.WriteLine("An error occurred."); } } } catch (Exception e) { Console.WriteLine(e.ToString()); continue; } } }
static void Main(string[] args) { AppDomain.CurrentDomain.SetData("DataDirectory", Application.StartupPath); context = new CourseDBContext(); ObjectMessageQueue.InitializeQueue(ObjectMessageQueue.DB_REQUEST); queue = new ObjectMessageQueue(); while (true) { try { Object obj = queue.receiveObject(ObjectMessageQueue.DB_REQUEST); new Thread(ProcessRequest).Start(obj); //ProcessRequest(obj); } catch (Exception e) { Console.WriteLine(e.ToString()); continue; } } }
static void Main(string[] args) { AppDomain.CurrentDomain.SetData("DataDirectory", Application.StartupPath); AccountDBContext context = new AccountDBContext(); ObjectMessageQueue queue = new ObjectMessageQueue(); ObjectMessageQueue.InitializeQueue(ObjectMessageQueue.AUTH_REQUEST); contextQueue = new ConcurrentQueue<AccountDBContext>(); context_lock = new object(); context_count = 0; ThreadPool.SetMaxThreads(25, 0); ThreadPool.SetMinThreads(5, 0); while (true) { try { Object obj = queue.receiveObject(ObjectMessageQueue.AUTH_REQUEST); GenericRequest gen_req = obj as GenericRequest; gen_req.requester_guid = queue.RequestGuid; gen_req.requester_ip = queue.RequestIP; ThreadPool.QueueUserWorkItem(DoMessage, obj); } catch (Exception e) { Console.WriteLine(e.ToString()); continue; } } }