Skip to content

Commit 72572b0

Browse files
committed
fix: reduce gui refresh
1 parent 6856572 commit 72572b0

File tree

1 file changed

+39
-37
lines changed

1 file changed

+39
-37
lines changed

MainForm.cs

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using System.Threading;
1010
using System.Windows.Forms;
1111
using System.Threading.Channels;
12+
using Serilog;
1213

1314
namespace neuopc
1415
{
@@ -33,32 +34,32 @@ public MainForm()
3334

3435
private void UpdateListView(List<Item> list)
3536
{
36-
foreach (var i in list)
37+
try
3738
{
38-
try
39+
Action<List<Item>> action = (data) =>
3940
{
40-
41-
Action<Item> action = (data) =>
41+
foreach (var i in data)
4242
{
43-
int index = data.ClientHandle;
43+
int index = i.ClientHandle;
4444
var items = MainListView.Items;
4545
var item = items[index];
4646
var subItemValue = item.SubItems[3];
4747
var subItemQuality = item.SubItems[4];
4848
var subItemError = item.SubItems[5];
4949
var subItemTs = item.SubItems[6];
5050

51-
subItemValue.Text = Convert.ToString(data.Value);
52-
subItemQuality.Text = data.Quality.ToString();
53-
subItemError.Text = data.Error.ToString();
54-
subItemTs.Text = Convert.ToString(data.Timestamp);
55-
};
51+
subItemValue.Text = Convert.ToString(i.Value);
52+
subItemQuality.Text = i.Quality.ToString();
53+
subItemError.Text = i.Error.ToString();
54+
subItemTs.Text = Convert.ToString(i.Timestamp);
55+
}
56+
};
5657

57-
Invoke(action, i);
58-
}
59-
catch
60-
{
61-
}
58+
Invoke(action, list);
59+
}
60+
catch (Exception exception)
61+
{
62+
Log.Error($"update list view error: {exception.Message}");
6263
}
6364
}
6465

@@ -82,42 +83,43 @@ private void UpdateDAStatusLabel(DaMsg msg)
8283

8384
Invoke(action, msg);
8485
}
85-
catch
86+
catch (Exception exception)
8687
{
88+
Log.Error($"update status lable error: {exception.Message}");
8789
}
8890
}
8991

9092

9193
private void ResetListView(List<Item> list)
9294
{
93-
Action<List<Item>> action = (data) =>
95+
try
9496
{
95-
MainListView.BeginUpdate();
96-
MainListView.Items.Clear();
97-
for (int i = 0; i < data.Count; i++)
97+
Action<List<Item>> action = (data) =>
9898
{
99-
ListViewItem lvi = new ListViewItem();
100-
lvi.Text = data[i].Name.ToString(); // handle
101-
lvi.SubItems.Add(data[i].Type.ToString()); // type
102-
lvi.SubItems.Add(data[i].Rights.ToString()); // rights
103-
lvi.SubItems.Add(""); // value
104-
lvi.SubItems.Add(""); // quality
105-
lvi.SubItems.Add(""); // error
106-
lvi.SubItems.Add(""); // timestamp
107-
lvi.SubItems.Add(data[i].ClientHandle.ToString()); // handle
108-
MainListView.Items.Add(lvi);
109-
}
110-
MainListView.EndUpdate();
111-
112-
};
99+
MainListView.BeginUpdate();
100+
MainListView.Items.Clear();
101+
for (int i = 0; i < data.Count; i++)
102+
{
103+
ListViewItem lvi = new ListViewItem();
104+
lvi.Text = data[i].Name.ToString(); // handle
105+
lvi.SubItems.Add(data[i].Type.ToString()); // type
106+
lvi.SubItems.Add(data[i].Rights.ToString()); // rights
107+
lvi.SubItems.Add(""); // value
108+
lvi.SubItems.Add(""); // quality
109+
lvi.SubItems.Add(""); // error
110+
lvi.SubItems.Add(""); // timestamp
111+
lvi.SubItems.Add(data[i].ClientHandle.ToString()); // handle
112+
MainListView.Items.Add(lvi);
113+
}
114+
MainListView.EndUpdate();
113115

116+
};
114117

115-
try
116-
{
117118
Invoke(action, list);
118119
}
119-
catch
120+
catch (Exception exception)
120121
{
122+
Log.Error($"reset list view error: {exception.Message}");
121123
}
122124
}
123125

0 commit comments

Comments
 (0)