From d007fd8d64ff33a1edb960fa33cf2312a955d933 Mon Sep 17 00:00:00 2001
From: wells.liu <wells.liu@broconcentric.com>
Date: 星期一, 06 七月 2020 14:02:46 +0800
Subject: [PATCH] 板卡底层优化

---
 src/Bro.UI.Config/MainFrm.cs |   30 ++++++++++++++++++++----------
 1 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/src/Bro.UI.Config/MainFrm.cs b/src/Bro.UI.Config/MainFrm.cs
index a3b3e18..f35297d 100644
--- a/src/Bro.UI.Config/MainFrm.cs
+++ b/src/Bro.UI.Config/MainFrm.cs
@@ -32,7 +32,7 @@
 
             VisualStudioToolStripExtender extender = new VisualStudioToolStripExtender();
             extender.SetStyle(menuMain, VisualStudioToolStripExtender.VsVersion.Vs2015, theme);
-            
+
             InitialMenu(MenuFormFactory.MenuFrmTypeDict, "");
 
             //MenuFormFactory.MenuFrmTypeDict.ToList().ForEach(t =>
@@ -90,7 +90,9 @@
         private void RegisterEvent(MenuFrmBase dockFrm)
         {
             dockFrm.OnUploadProcess = DockFrm_OnUploadProcess;
-            dockFrm.OnLogMsgOutput = DockFrm_OnLogMsgOutput;
+
+            dockFrm.OnLogMsgOutput -= DockFrm_OnLogMsgOutput;
+            dockFrm.OnLogMsgOutput += DockFrm_OnLogMsgOutput;
 
             //if (dockFrm is FrmDevices)
             //{
@@ -167,9 +169,14 @@
             });
         }
 
-        private void Process_OnAlarmUpdate(string alarmMsg)
+        private async void Process_OnAlarmUpdate(string alarmMsg)
         {
-            tsslWarning.Text = alarmMsg;
+            this.BeginInvoke(new Action(() =>
+            {
+                tsslWarning.Text = alarmMsg;
+            }));
+
+            await Task.Delay(100);
         }
 
         private ToolStripMenuItem GetMatchNode(ToolStripItemCollection items, string parentMenuCode)
@@ -491,15 +498,18 @@
 
         private void Device_OnDeviceStateChanged(IDevice device, EnumHelper.DeviceState currentState)
         {
-            for (int i = 1; i < ststripDevices.Items.Count; i++)
+            ststripDevices.BeginInvoke(new Action(() =>
             {
-                if ((ststripDevices.Items[i].Tag as IDevice)?.Id == device.Id)
+                for (int i = 1; i < ststripDevices.Items.Count; i++)
                 {
-                    ststripDevices.Items[i].BackColor = currentState.GetEnumSelectedColor();
-                    ststripDevices.Items[i].ForeColor = currentState.GetEnumSelectedFontColor();
-                    break;
+                    if ((ststripDevices.Items[i].Tag as IDevice)?.Id == device.Id)
+                    {
+                        ststripDevices.Items[i].BackColor = currentState.GetEnumSelectedColor();
+                        ststripDevices.Items[i].ForeColor = currentState.GetEnumSelectedFontColor();
+                        break;
+                    }
                 }
-            }
+            }));
         }
         #endregion
 

--
Gitblit v1.8.0