From aefe9f2572eac7c61f6d2952593ec18a700dfcf0 Mon Sep 17 00:00:00 2001
From: patrick.xu <patrick.xu@broconcentric.com>
Date: 星期二, 01 六月 2021 11:43:19 +0800
Subject: [PATCH] 1. 上传数据线程部分修改,界面关闭时退出所有相关线程

---
 DetectionDataUpload.cs |   43 +++++++++++++++++++++++++++----------------
 1 files changed, 27 insertions(+), 16 deletions(-)

diff --git a/DetectionDataUpload.cs b/DetectionDataUpload.cs
index 4d02940..536b414 100644
--- a/DetectionDataUpload.cs
+++ b/DetectionDataUpload.cs
@@ -23,7 +23,7 @@
     {
         #region 鏁版嵁涓婁紶鐩稿叧绉佹湁鎴愬憳
         private DetectionData detectionData;
-        private Thread uploadDataProcesser;
+        private Thread uploadDataProcesser = null;
         //private RunCard runCard;
         private ConfigStruct config;
         #endregion
@@ -43,33 +43,43 @@
         /// </summary>
         public void Start()
         {
-            uploadDataProcesser = new Thread(Execute);
-            uploadDataProcesser.Start();
+            if (uploadDataProcesser == null)
+            {
+                uploadDataProcesser = new Thread(Execute);
+                uploadDataProcesser.IsBackground = true;
+                uploadDataProcesser.Start();
+            }
         }
 
         public void Stop()
         {
-            if (uploadDataProcesser != null && uploadDataProcesser.IsAlive)
-            {
-                uploadDataProcesser.Abort();
-                uploadDataProcesser.Join();
-            }
-            uploadDataProcesser = null;
+            //if (uploadDataProcesser != null && uploadDataProcesser.IsAlive)
+            //{
+            //    uploadDataProcesser.Abort();
+            //    uploadDataProcesser.Join();
+            //}
+            //uploadDataProcesser = null;
         }
 
-        static object uploadLock = new object();
+        //static object uploadLock = new object();
         public void UploadData()
         {
-            lock (uploadLock)
+            lock (CommonUtil.UploadDataLock)
             {
+                if (!CommonUtil.UploadDataEnable)
+                    return;
+
                 DataTable dtUpload = detectionData.QueryUnloadData();
                 if (dtUpload.Rows.Count <= 0)
                     return;
+
                 if (dtUpload.Rows.Count < 20)
                 {
                     Thread.Sleep(2000);
                     dtUpload = detectionData.QueryUnloadData();
                 }
+
+                CommonUtil.UploadDoneHandle.Reset();
 
                 //    Type runCardClass = asm.GetType("AutoRunCard.RunCard");
                 //    object runCardObj = Activator.CreateInstance(runCardClass);
@@ -168,6 +178,7 @@
                 //}
 
                 CommonUtil.WriteLog(LogType.Inf, string.Format("妫�娴嬭褰曚笂浼犵粨鏉�,鍏辨湁{0}绗斿緟涓婁紶鏁版嵁锛屾垚鍔熶笂浼爗1}绗�", dtUpload.Rows.Count, uploadCount));
+                CommonUtil.UploadDoneHandle.Set();
             }
         }
 
@@ -234,11 +245,11 @@
                 int times = 1200 * 5;
                 while (uploadDataProcesser.IsAlive)
                 {
-                    if (!CommonUtil.UploadDataEnable)
-                    {
-                        Thread.Sleep(20);
-                        continue;
-                    }
+                    //if (!CommonUtil.UploadDataEnable)
+                    //{
+                    //    Thread.Sleep(20);
+                    //    continue;
+                    //}
 
                     //UploadData(asm);
                     UploadData();

--
Gitblit v1.8.0