From 925ab619ead90124abdab6202d91980d992b1e11 Mon Sep 17 00:00:00 2001
From: ulysseskao <ulysseskao@gmail.com>
Date: Tue, 03 May 2016 19:33:17 +0800
Subject: [PATCH] add thread setting

---
 CCSTrace/CCS/CCSMain.cs |   45 ++++++++++++++++++++++++++++++++++-----------
 1 files changed, 34 insertions(+), 11 deletions(-)

diff --git a/CCSTrace/CCS/CCSMain.cs b/CCSTrace/CCS/CCSMain.cs
index 49b05a5..a9a480b 100644
--- a/CCSTrace/CCS/CCSMain.cs
+++ b/CCSTrace/CCS/CCSMain.cs
@@ -77,8 +77,8 @@
                 throw;
             }
 
-            var addrContrast = AddrContrast.Instance;
-            addrContrast.initialize(_mainConn);
+            AddrContrast.Instance.Initialize(_mainConn);
+            AlarmData.Instance.Initialize(_mainConn);
 
             CCSEventRecord ccsEventRecord = GetWaitRecord(_mainConn);
 
@@ -108,11 +108,32 @@
             GC.WaitForPendingFinalizers();
         }
 
+        public void AcceptEvent2(CCSEventRecord ccsEventRecord)
+        {
+            // WorkItemCallback workItemCallback = new WorkItemCallback(this.DoEventWork);
+            _mainjobThreadPool.QueueWorkItem(DoEventWork, ccsEventRecord);
+        }
+
+        private void DoEventWork(CCSEventRecord state)
+        {
+            OracleConnection conn;
+            lock (_syncDbQueue) conn = _dbQueue.Dequeue();
+
+            try
+            {
+                AcceptEvent(state);
+            }
+            finally
+            {
+                lock (_syncDbQueue) _dbQueue.Enqueue(conn);
+            }
+
+
+        }
+
         public void AcceptEvent(CCSEventRecord ccsEventRecord)
         {
             /*
-            WorkItemCallback workItemCallback = new WorkItemCallback(this.DoWork);
-            _mainjobThreadPool.QueueWorkItem(workItemCallback, ccsEventRecord);
             WIGStartInfo wigStartInfo = new WIGStartInfo()
             {
                 FillStateWithArgs = true,
@@ -138,7 +159,7 @@
 
                             if (waitCcsEventRecord != null)
                             {
-                                OracleConnection conn = null;
+                                OracleConnection conn;
                                 lock (_syncDbQueue) conn = _dbQueue.Dequeue();
                                 ProcessCase(waitCcsEventRecord, conn);
                             }
@@ -170,10 +191,12 @@
             {
                 string file = Path.Combine(AppDataPath, DbConfigFilename);
                 // 建立 XML 讀取器
-                XmlReaderSettings settings = new XmlReaderSettings();
-                settings.IgnoreComments = true; // 不處理註解
-                settings.IgnoreWhitespace = true; // 跳過空白
-                settings.ValidationType = ValidationType.None; // 不驗證任何資料
+                XmlReaderSettings settings = new XmlReaderSettings
+                {
+                    IgnoreComments = true, // 不處理註解
+                    IgnoreWhitespace = true, // 跳過空白
+                    ValidationType = ValidationType.None // 不驗證任何資料
+                };
                 reader = XmlReader.Create(file, settings);
 
                 // 進入讀取主要部分
@@ -231,8 +254,8 @@
         {
             OracleConnectionStringBuilder builder = new OracleConnectionStringBuilder(GlobalVariable.ConnectionString)
             {
-                MaxPoolSize = 20,
-                MinPoolSize = 5,
+                MaxPoolSize = GlobalVariable.MaxConnectionCount,
+                MinPoolSize = 1,
                 Pooling = true
             };
             string connectstring = builder.ToString();

--
Gitblit v0.0.0-SNAPSHOT