From 3c3dcfcfad960d713beb0d1f75e6e25e974df260 Mon Sep 17 00:00:00 2001 From: iioter <535915157@qq.com> Date: Fri, 1 Dec 2023 21:24:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E6=8F=90=E9=AB=98=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=89=93=E5=BC=80=E9=80=9F=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DeviceVariableVMs/DeviceVariableListVM.cs | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/IoTGateway.ViewModel/BasicData/DeviceVariableVMs/DeviceVariableListVM.cs b/IoTGateway.ViewModel/BasicData/DeviceVariableVMs/DeviceVariableListVM.cs index d48722e..b56e9d3 100644 --- a/IoTGateway.ViewModel/BasicData/DeviceVariableVMs/DeviceVariableListVM.cs +++ b/IoTGateway.ViewModel/BasicData/DeviceVariableVMs/DeviceVariableListVM.cs @@ -41,20 +41,24 @@ namespace IoTGateway.ViewModel.BasicData.DeviceVariableVMs .GetTreeSelectListItems(Wtm, x => x.DeviceName); var deviceService = Wtm.ServiceProvider.GetService(typeof(DeviceService)) as DeviceService; - foreach (var device in AllDevices) + Parallel.ForEach(AllDevices, device => { - foreach (var item in device.Children) + Parallel.ForEach(device.Children, item => { - var deviceThread = deviceService.DeviceThreads.Where(x => x.Device.ID.ToString() == (string)item.Value).FirstOrDefault(); + var deviceThread = deviceService.DeviceThreads.FirstOrDefault(x => x.Device.ID.ToString() == (string)item.Value); if (deviceThread != null) - item.Icon = deviceThread.Device.AutoStart ? (deviceThread.Driver.IsConnected ? "layui-icon layui-icon-link" : "layui-icon layui-icon-unlink") : "layui-icon layui-icon-pause"; + item.Icon = deviceThread.Device.AutoStart + ? (deviceThread.Driver.IsConnected + ? "layui-icon layui-icon-link" + : "layui-icon layui-icon-unlink") + : "layui-icon layui-icon-pause"; item.Text = " " + item.Text; item.Expended = true; item.Selected = item.Value.ToString() == IoTBackgroundService.VariableSelectDeviceId.ToString(); - } - } + }); + }); DevicesTree = GetLayuiTree(AllDevices); base.InitListVM(); } @@ -99,7 +103,7 @@ namespace IoTGateway.ViewModel.BasicData.DeviceVariableVMs public override void AfterDoSearcher() { var deviceService = Wtm.ServiceProvider.GetService(typeof(DeviceService)) as DeviceService; - foreach (var item in EntityList) + Parallel.ForEach(EntityList, item => { var dapThread = deviceService!.DeviceThreads.FirstOrDefault(x => x.Device.ID == item.DeviceId); var variable = dapThread?.Device?.DeviceVariables?.FirstOrDefault(x => x.ID == item.ID); @@ -111,7 +115,7 @@ namespace IoTGateway.ViewModel.BasicData.DeviceVariableVMs item.StatusType = variable.StatusType; item.Timestamp = variable.Timestamp; } - } + }); } public override IOrderedQueryable GetSearchQuery()