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